제출 #667504

#제출 시각아이디문제언어결과실행 시간메모리
667504Darren0724Genetics (BOI18_genetics)C++17
46 / 100
2075 ms58304 KiB
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx2")
#include<bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,m,k;cin>>n>>m>>k;
    vector<vector<bitset<4100>>> v(n,vector<bitset<4100>>(4));
    vector<vector<int>> ans(n,vector<int>(n));
    for(int i=0;i<n;i++){
        string s;cin>>s;
        for(int j=0;j<m;j++){
            if(s[j]=='A'){
                v[i][0][j]=1;
            }
            if(s[j]=='T'){
                v[i][1][j]=1;
            }
            if(s[j]=='C'){
                v[i][2][j]=1;
            }
            if(s[j]=='G'){
                v[i][3][j]=1;
            }
        }
    }
    for(int i=0;i<n;i++){
        ans[i][i]=k;
        for(int j=i+1;j<n;j++){
            for(int k=0;k<4;k++){
                ans[i][j]+=(v[i][k]&v[j][k]).count();
            }
            ans[i][j]=m-ans[i][j];
            ans[j][i]=ans[i][j];
        }
    }
    for(int i=0;i<n;i++){
        bool flag=1;
        for(int j=0;j<n;j++){
            if(ans[i][j]!=k){
                flag=0;
            }
        }
        if(flag){
            cout<<i+1<<endl;
            break;
        }
    }

    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...