B
NCPC
https://ac.nowcoder.com/acm/contest/120562/B
统计出最大数的次数,若为奇数,不管怎么比最后剩下的只可能是最大数,所以奇数次时最大数胜出;而若为偶数的时候,最大数之间可相互抵消,所以无论如何最大数是无法胜出的,但在抵消之前,最大数可以把想胜出数以外的其他数都给干掉,最后最大数再两两抵消,因此若为偶数次的时候,除了最大数本身,其他数都有可能获胜。
``
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
vector<long long> a(n);
for(int i=0;i<n;i++){
cin>>a[i];
}
long long maxa=a[0];
for(int i=1;i<n;i++){
if(a[i]>maxa){
maxa=a[i];
}
}
int count=0;
for(int i=0;i<n;i++){
if(a[i]==maxa){
count++;
}
}
if(count%2==0){
for(int i=0;i<n;i++){
if(a[i]!=maxa){
cout<<1;
}
else{
cout<<0;
}
}
}
else{
for(int i=0;i<n;i++){
if(a[i]==maxa){
cout<<1;
}
else{
cout<<0;
}
}
}
cout<<endl;
}
return 0;
}