D - XOR Permutationshttps://vjudge.csgrandeur.cn/problem/Gym-102152D
#include <bits/stdc++.h>
using namespace std;
const int inf=0x3f3f3f3f;
const int N=2e5+7;
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int a[3],num=0;
memset(a,0,sizeof a);
for(int i=0;i<3;i++)
{
for(int j=0;j<10;j++)
{
char c;
cin>>c;
if(c=='1')
{
a[i]++;
num++;
}
}
}
sort(a,a+3,cmp);
if(num>10)
{
while(a[2]>0&&num>10)
{
a[0]--;a[1]--;num-=2;//a[0]先变为0,先把两行能变的1变为0
}
if(num>10)
{
for(int i=0;i<10;i++)
{
if(i<20-num)//求剩下两行0的个数,而1^0=1,其实就是1的个数
cout<<1;
else
cout<<0;
}
cout<<endl;
}
else
{
for(int i=0;i<10;i++)
{
if(i<num)
cout<<1;
else
cout<<0;
}
cout<<endl;
}
}
else
{
for(int i=0;i<10;i++)
{
if(i<num)
cout<<1;
else
cout<<0;
}
cout<<endl;
}
}
return 0;
}