Submission #709878

#TimeUsernameProblemLanguageResultExecution timeMemory
709878stevancvGenetics (BOI18_genetics)C++14
100 / 100
866 ms36264 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define sp ' ' #define en '\n' #define smin(a, b) a = min(a, b) #define smax(a, b) a = max(a, b) using namespace std; const int N = 4100 + 5; const int inf = 1e9; const int mod = 1e9 + 7; int Get(char x) { if (x == 'A') return 0; if (x == 'C') return 1; if (x == 'G') return 2; if (x == 'T') return 3; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, k; cin >> n >> m >> k; vector<string> s(n); vector<ll> v(n); mt19937 mt(time(nullptr)); for (int i = 0; i < n; i++) { cin >> s[i]; v[i] = mt() % mod; } vector<ll> d(n); for (int j = 0; j < m; j++) { vector<ll> a(4); for (int i = 0; i < n; i++) { a[Get(s[i][j])] += v[i]; } for (int i = 0; i < n; i++) { for (int p = 0; p < 4; p++) { if (Get(s[i][j]) != p) d[i] += a[p]; } } } ll svi = 0; for (int i = 0; i < n; i++) svi += v[i]; for (int i = 0; i < n; i++) { if ((svi - v[i]) * k == d[i]) { cout << i + 1 << en; return 0; } } return 0; }

Compilation message (stderr)

genetics.cpp: In function 'int Get(char)':
genetics.cpp:17:1: warning: control reaches end of non-void function [-Wreturn-type]
   17 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...