Submission #1215510

#TimeUsernameProblemLanguageResultExecution timeMemory
1215510boclobanchatGenetics (BOI18_genetics)C++20
0 / 100
175 ms22088 KiB
#include<bits/stdc++.h> using namespace std; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); int Rand(int l,int r) { return uniform_int_distribution<int>(l,r)(rng); } const int MAXN=4114; bitset<MAXN> bt[MAXN][2]; bool ck[MAXN]; int per[MAXN],val[MAXN][MAXN]; int get(int x,int y) { return ((bt[x][0]^bt[y][0])|(bt[x][1]^bt[y][1])).count(); } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m,k; cin>>n>>m>>k; int cnt=n; for(int i=1;i<=n;i++) { string s; cin>>s; for(int j=0;j<m;j++) { if(s[j]=='A'||s[j]=='C') bt[i][0][j]=1; if(s[j]=='A'||s[j]=='G') bt[i][1][j]=1; } } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) val[i][j]=-1; for(int i=1;i<=n;i++) per[i]=i; for(int i=1;i<=n*2;i++) swap(per[Rand(1,n)],per[Rand(1,n)]); for(int i=1;i<=n;i++) if(!ck[i]) { bool kc=true; for(int j=i+1;j<=n&&kc;j++) if(get(per[i],per[j])!=k) kc=false,ck[j]=true; if(kc) return cout<<per[i],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...