题目描述及输入输出如图所示

alt

核心思路

如果最大数个数为奇数,则在消除过程中,所有比max小的数都会被删除,最后max在两两消除,留下任意一个最大数,此时所有最大数都有可能获胜。

而如果最大数个数为偶数,则在消除时,所有最大数之间都会两两消除,剩下任意数,都可以通过用最大数消掉其他数来获胜,即当最大数为偶数时,除了最大数,其他任意数都能获胜。

代码如下

```#include<bits/stdc++.h>
using namespace std;
//#define int long long
int main() {
	int T;
	cin >> T;
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	for(int i=0;i<T;i++) {
		int n;
		cin >> n;
		int mx=-1;
        vector<int> a(200005);
		map<int,int> cnt;
		for (int j = 0; j < n; j++) {
			cin >> a[j];
            if(a[j]>mx)
                mx=a[j];
			cnt[a[j]]++;
		}
        //cout<<cnt[mx]<<" "<<mx<<endl;
        for(int k=0;k<n;k++)
        {
            if(a[k]!=mx&&cnt[mx]%2==0)
               cout<<"1";
            else
                if(a[k]==mx&&cnt[mx]%2)
                    cout<<"1";
                else
                    cout<<"0";
        }
        cout<<'\n';
	}
	return 0;
}