#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];
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++) 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++)
{
bool ck=true;
for(int j=1;j<=n&&ck;j++) if(i!=j&&get(per[i],per[j])!=k) ck=false;
if(ck) return cout<<per[i],0;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |