include
using namespace std;
map<int,int>mp;
int main()
{
ios::sync_with_stdio(false);cin.tie(0);
int n;cin>>n;
int arry[n],so[n];
for(int i=0;i<n;i++){
cin>>arry[i];
}
int one[20001],zero[20001];
int index0=0,index1=0,sum0=0,sum1=0;
for(int i=0;i<n;i++){
if(arry[i]==0){zero[index0++]=i;sum0++;}
if(arry[i]==1){one[index1++]=i;sum1++;}
}
for(int i=0;i<index0;i++){
mp[i]=zero[i];
}
for(int i=index0;i<n;i++){
mp[i]=one[i-index0];
}
int output[n]={0};
for(int i=0,j=0;i<n;i++){
output[i]=arry[mp[j]];
j=mp[j];
}
int cnt1=0,cnt0=0;
for(int i=0;i<n;i++){
if(output[i]==0) cnt0++;
else cnt1++;
}
if(cnt1==sum1&&cnt0==sum0){
for(int i=0;i<n;i++) cout<<output[i]<<" ";
}
else cout<<-1;
}
这个算法秀啊,大佬nb
%%%