Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define int long long
- #define endl '\n'
- const int MOD=(long long)805306457*1000000009;
- int fast_inv(int b, int exp){
- if(exp==0)return 1;
- if(exp==1)return b;
- int val=fast_inv(b, exp/2);
- val=((__int128_t)val*val)%MOD;
- if(exp&1)val=((__int128_t)val*b)%MOD;
- return val;
- }
- int32_t main(){
- ios_base::sync_with_stdio(0); cin.tie(0);
- int T=1;
- cin >> T;
- while(T--){
- int n, m;
- cin >> n >> m;
- vector<string> mapa(n);
- map<int,int> resp;
- map<int,pair<int,int>> aux;
- for(int i=0; i<n; i++)
- cin >> mapa[i];
- for(int coluna=0; coluna<m; coluna++){
- int c0=0, m=1;
- for(int i=0; i<n; i++){
- if(mapa[i][coluna]=='1')c0=((__int128_t)7*m+c0)%MOD;
- else c0=((__int128_t)3*m+c0)%MOD;
- m=((__int128_t)13*m)%MOD;
- }
- m=1;
- for(int i=0; i<n; i++){
- int val;
- if(mapa[i][coluna]=='1'){
- val=(c0-(__int128_t)4*m)%MOD;
- if(val<0)val+=MOD;
- }
- else{
- val=(c0+(__int128_t)4*m)%MOD;
- }
- resp[val]++;
- if(resp[val]==1)aux[val]=make_pair(i, coluna);
- m=((__int128_t)13*m)%MOD;
- }
- }
- int mx=0, val;
- for(auto x:resp){
- if(x.second>mx){
- mx=x.second;
- val=x.first;
- }
- }
- cout << mx << '\n';
- pair<int,int> pos=aux[val];
- for(int i=0; i<n; i++){
- if(i==pos.first){
- if(mapa[i][pos.second]=='1')cout << '0';
- else cout << '1';
- }
- else{
- if(mapa[i][pos.second]=='1')cout << '1';
- else cout << '0';
- }
- }
- cout << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement