题意

这道题要分两种情况:

  1. 当最大数是奇数时,不管任何情况下那些比最大数小的都无法通过任意方法成为最后冠军; 2.当最大数是偶数时,对于不是最大数的数a,我们可以让最大数充当打手,将除了a以外的数都击败,最后让最大数两两相消,最后就剩a这个数;

代码

#include <bits/stdc++.h>
using namespace std;
int main(){
    int T;
    cin>>T;
    while(T--){
        int n;
        cin>>n;
        int a[n],b[n];
        for(int i=0;i<n;i++){
            cin>>a[i];
            b[i]=a[i];
        }
		sort(b,b+n);
        if(b[0]==b[n-1]){
            if(n%2)cout<<string(n,'1')<<endl;
            else cout<<string(n,'0')<<endl;
        }
		else{
            int m=1;
            for(int i=n-1;i>0;i--){
                if(b[i]==b[i-1])m++;
                else break;
            }
            if(m%2){
                for(int i=0;i<n;i++){
                    if(a[i]==b[n-1])cout<<1;
                    else cout<<0;
                }cout<<endl;
            }
            else{
                for(int i=0;i<n;i++){
                    if(a[i]==b[n-1])cout<<0;
                    else cout<<1;
                }cout<<endl;
            }
        }
    }
    return 0;
}