题解:P10672 【MX-S1-T1】壁垒
注意到,我们可以先统计
若
若
#include<bits/stdc++.h>
using namespace std;
int n,flag,a[100010],f[100010];
int read(){
int x=0,p=1;char ac=getchar();
while(ac!='-' && (ac<'0' || ac>'9')) ac=getchar();
if(ac=='-') p=-1;
while(ac>='0' && ac<='9') x=x*10+ac-'0',ac=getchar();
return x*p;
}
int main(){
n=read();
for(int i=1;i<=n;i++){
a[i]=read(),f[a[i]]++;
if(f[a[i]]!=1) flag++;
}
if(flag%2) return !printf("-1");
for(int i=1;i<=100000;i++)
if(f[i]) printf("%d ",i),f[i]--;
for(int i=1;i<=100000;i++)
while(f[i])
printf("%d ",i),f[i]--;
return 0;
}
更新日志
修改了一处笔误。