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();
}
}
🤮🤮
