Submission #1286479

#TimeUsernameProblemLanguageResultExecution timeMemory
1286479nguyenkhangninh99Genetics (BOI18_genetics)C++20
100 / 100
378 ms132820 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int n, m, k; cin >> n >> m >> k;

    vector<int> h(n);
    
    int allk = 0;
    for(int i = 0; i < n; i++){
        h[i] = uniform_int_distribution<int>(0, (1ll << 62))(rng);
        allk += k * h[i];
    }

    vector<vector<int>> s(n, vector<int>(m));
    vector<array<int, 4>> mp(m, array<int, 4>{});
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            char x; cin >> x;
            s[i][j] = (x == 'A' ? 0 : (x == 'T' ? 1 : (x == 'G' ? 2 : 3)));
            mp[j][s[i][j]] += h[i];
        }
    }


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