本题关键在于美味值最高的选手的个数的奇偶性。
对于美味值不是最大的选手x来说,可以让最大的选手不断淘汰其他选手,最终留下x及最大的选手,若最大选手个数是偶数,则可让最大选手淘汰,x留下,输出1。若最大选手个数是奇数,则x被淘汰,输出0;
对于美味值最大的选手y来说,若最大选手个数是偶数,则输出0,若最大选手个数是奇数,则输出1。
下面是代码:
#include<bits/stdc++.h>
#define int long long
int a[200005];
using namespace std;
signed main(){
int T;
cin>>T;
while(T--){
int n,mx=0,cnt=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>mx)mx=a[i];
}
for(int i=1;i<=n;i++){
if(a[i]==mx)cnt++;
}
for(int i=1;i<=n;i++){
if(a[i]!=mx){
if(cnt%2==0)cout<<"1";
else cout<<"0";
}
else if(a[i]==mx){
if(cnt%2==0)cout<<"0";
else cout<<"1";
}
}
cout<<endl;
}
}

京公网安备 11010502036488号