Submission #1276158

#TimeUsernameProblemLanguageResultExecution timeMemory
1276158not_amirGenetics (BOI18_genetics)C++20
46 / 100
2093 ms20376 KiB
#include <bits/stdc++.h> using namespace std; int dtoi(char c) { if (c == 'A') return 0; if (c == 'G') return 1; if (c == 'C') return 2; if (c == 'T') return 3; exit(-1); } char itod(int x) { return "AGCT"[x]; } int main() { cin.tie(nullptr)->sync_with_stdio(false); int n, m, k; cin >> n >> m >> k; vector<string> C(n); vector<vector<int>> cnt(m, vector<int>(4)); for (string &s : C) { cin >> s; for (int i = 0; i < m; i++) cnt[i][dtoi(s[i])]++; } random_device rd; mt19937_64 g(rd()); vector<int> p(n); iota(p.begin(), p.end(), 0); shuffle(p.begin(), p.end(), g); auto ok = [&](int i) { for (int j : p) { if (j == i) continue; int s = 0; for (int l = 0; s <= k && l < m; l++) { s += (C[i][l] != C[j][l]); } if (s != k) return false; } return true; }; for (int i : p) { int s = 0; for (int j = 0; s <= (n - 1) * k && j < m; j++) { for (int l = 0; l < 4; l++) { if (l != dtoi(C[i][j])) s += cnt[j][l]; } } if (s != (n - 1) * k) continue; if (ok(i)) { cout << i + 1; return 0; } } cout << -1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...