D. Binary Literature
学习自该博主
对于一个2*n的串,不是1的数量大于等于0,就是0的数量小于1
给了三个串,那么一定有两个串 0或者1大于等于n
然后找到那两个串,相同输出,不同输出不同的。
结尾,不够的补上0
#include<bits/stdc++.h> #define int long long using namespace std; string s[3]; int c[3],cc[3]; int n; void print(int x,int y,char f){ int i=0,j=0; string ans; while(i<n*2&&j<n*2){ if(s[x][i]!=f)ans+=s[x][i++]; else if(s[y][j]!=f)ans+=s[y][j++]; else{ ans+=f; i++,j++; } } while(i<n*2){ ans+=s[x][i++]; } while(j<n*2){ ans+=s[y][j++]; } cout<<ans<<endl; } void solve(){ cin>>n; for(int i=0;i<3;i++){ cin>>s[i]; c[i]=cc[i]=0; for(int j=0;j<n*2;j++){ if(s[i][j]=='0')c[i]++; else cc[i]++; } } for(int i=0;i<3;i++){ for(int j=i+1;j<3;j++){ if(c[i]>=n&&c[j]>=n){//0 print(i,j,'0'); return ; } if(cc[i]>=n&&cc[j]>=n){//1 print(i,j,'1'); return ; } } } } signed main(){ ios::sync_with_stdio(0); int T;cin>>T; while(T--){ solve(); } return 0; }