제출 #605693

#제출 시각아이디문제언어결과실행 시간메모리
605693czhang2718Genetics (BOI18_genetics)C++17
100 / 100
627 ms36364 KiB
#include "bits/stdc++.h"
using namespace std;

typedef long long ll;

const int N=4100;
int n, m, k;
string s[N];
int w[N];
ll sum[N][4];

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int h(char c){
    if(c=='A') return 0;
    if(c=='G') return 1;
    if(c=='T') return 2;
    return 3;
}

int main(){
    cin.tie(0)->sync_with_stdio(0);

    cin >> n >> m >> k;
    ll tot=0;
    for(int i=0; i<n; i++){
        cin >> s[i];
        w[i]=rng();
        tot+=w[i];
    }

    for(int j=0; j<m; j++){
        for(int i=0; i<n; i++){
            sum[j][h(s[i][j])]+=w[i];
        }
    }

    for(int i=0; i<n; i++){
        ll x=0;
        for(int j=0; j<m; j++){
            for(int c=0; c<4; c++){
                if(h(s[i][j])!=c) x+=sum[j][c];
            }
        }
        if(x==(tot-w[i])*k){
            cout << i+1;
            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...