Submission #1179021

#TimeUsernameProblemLanguageResultExecution timeMemory
1179021walizamaneeGenetics (BOI18_genetics)C++20
46 / 100
2094 ms20280 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int n , m , k , chek[4101][26] , ans , tim , one , two , nn , siz; // abar koro ? string a[4101]; vector<int> perm , ek , dui , tin; int diff( int me , int her ) { int dif = 0; for( int z = 0; z < m; z++ ) { if( a[me][z] != a[her][z] ) dif++; } return dif; } void getans( int me ) { int hey = 0; for( int z = 0; z < n; z++ ) { if( perm[z] != me ) { hey = diff( me , perm[z] ); if( hey != k ) { z = n; } } if( z == n - 1 ) ans = me; } } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> m >> k; ans = -1; for( int z = 0; z < n; z++ ) perm.push_back(z); random_device rd; mt19937 g(rd()); shuffle(perm.begin(), perm.end(), g); for( int z = 0; z < n; z++ ) { cin >> a[z]; for( int y = 0; y < m; y++ ) { chek[y][(int)(a[z][y] - 'A')]++; } ek.push_back(z); } siz = n; nn = n + 1; while( siz < nn ) { // nn mane aagertar siz nn = siz; for( int z = 0; z < tin.size(); z++ ) { for( int y = 0; y < m; y++ ) { chek[y][(int)(a[tin[z]][y] - 'A')]--; } } tin.clear(); for( int z = 0; z < nn; z++ ) { one = 0; for( int y = 0; y < m; y++ ) { one += (nn - chek[y][(int)(a[ek[z]][y] - 'A')] ); } // cout << one << " " << (k * (n - 1)) << " " << n << " " << k << "\n"; if( one == (k * (nn - 1)) ) { dui.push_back(ek[z]); } else{ tin.push_back(ek[z]); } } ek = dui; siz = ek.size(); } for( int z = 0; z < (int)ek.size(); z++ ) { getans( ek[z] ); if( ans != -1 ) z = n; } cout << ans + 1 << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...