This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int arr[4107][4107];
int uc[4][4107];
bool c[4107];
int main()
{
ios::sync_with_stdio(false);
int n,m,k;
cin>>n>>m>>k;
string s;
for(int i=0;i<n;i++)
{
cin>>s;
for(int j=0;j<m;j++)
{
if(s[j]=='A') arr[i][j]=0;
if(s[j]=='C') arr[i][j]=1;
if(s[j]=='G') arr[i][j]=2;
if(s[j]=='T') arr[i][j]=3;
uc[arr[i][j]][j]++;
}
}
for(int ttt=0;ttt<50000;ttt++)
{
int x=rand()%n,y=rand()%n;
if(x==y) continue;
int st=0;
for(int t=0;t<m;t++) if(arr[x][t]!=arr[y][t]) st++;
if(st!=k) {c[x]=c[y]=true;};
}
for(int i=0;i<n;i++) if(!c[i])
{
int skor=0;
bool propo=false;
for(int j=0;j<m;j++) skor+=(n-uc[arr[i][j]][j]);
if(skor!=(n-1)*k) continue;
for(int j=0;j<n;j++) if(i!=j)
{
int x=0;
for(int t=0;t<m;t++) if(arr[i][t]!=arr[j][t]) x++;
if(x!=k) {propo=true; break;}
}
if(propo) continue;
printf("%d",i+1);
return 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... |