80求hack:e
#include<bits/stdc++.h> using namespace std; #define int long long vector<int>a,ans; int x,y,z; struct node{ int num,idx; }arr[4]; bool cmp1(node x,node y){return x.num<y.num;} void solve() { cin>>x>>y>>z; a.resize(x+y+z+1); ans.resize(x+y+z+1); for(int i=1;i<=x+y+z;i++) cin>>a[i]; arr[1].num=x,arr[1].idx=1; arr[2].num=y,arr[2].idx=2; arr[3].num=z,arr[3].idx=3; sort(arr+1,arr+4,cmp1); vector<int>n(4); n[1]=arr[1].num,n[2]=arr[2].num,n[3]=arr[3].num; for(int i=1;i<=x+y+z;i++){ if(a[i]==arr[1].idx){ if(n[3]){n[3]--;ans[i]=arr[3].idx;} else if(n[2])n[2]--,ans[i]=arr[2].idx; else n[1]--,ans[i]=arr[1].idx; } if(a[i]==arr[2].idx){ if(n[3]){n[3]--;ans[i]=arr[3].idx;} else if(n[1])n[1]--,ans[i]=arr[1].idx; else n[2]--,ans[i]=arr[2].idx; } if(a[i]==arr[3].idx){ if(n[2]){n[2]--;ans[i]=arr[2].idx;} else if(n[1]){n[1]--;ans[i]=arr[1].idx;} else n[3]--,ans[i]=arr[3].idx; } } for(int i=1;i<=x+y+z;i++){cout<<ans[i]<<" \n"[i==x+y+z];} } signed main() { // std::ios::sync_with_stdio(0); // std::cin.tie(0); int T = 1; //cin >> T; while (T--) { solve(); } }
🤮🤮