Submission #653096

#TimeUsernameProblemLanguageResultExecution timeMemory
653096_martynasGenetics (BOI18_genetics)C++11
27 / 100
2070 ms70864 KiB
#pragma GCC optimize ("Ofast") #pragma GCC target ("avx,avx2") #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; using pli = pair<ll, int>; using pll = pair<ll, ll>; using vi = vector<int>; using vl = vector<ll>; const int MOD = 1e9+7; #define F first #define S second #define PB push_back #define all(a) (a).begin(), (a).end() #define rall(a) (a).rbegin(), (a).rend() void FASTIO() {ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); } const int MXN = 4105; int n, m, k; string S[MXN]; int A[4][MXN][MXN]; int c_to_id[256]; void solve() { } int main() { FASTIO(); c_to_id['A'] = 0; c_to_id['C'] = 1; c_to_id['G'] = 2; c_to_id['T'] = 3; cin >> n >> m >> k; for(int c = 0; c < 4; c++) for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { A[c][i][j] = -1; } } for(int i = 0; i < n; i++) { string s; cin >> s; S[i] = s; for(int j = 0; j < m; j++) { int v = c_to_id[s[j]]; A[v][i][j] = 1; } } for(int i = 0; i < n; i++) { //cerr << S[i] << "\n"; bool ok = true; for(int j = 0; j < n; j++) { if(i == j) continue; int cnt = 0; for(int c = 0; c < 4; c++) { for(int u = 0; u < m; u++) { cnt += A[c][i][u]*A[c][j][u]; } } //cerr << "<> " << S[j] << ": " << cnt << "\n"; if(cnt != 4*(m-k)) { ok = false; break; } } if(ok) { cout << i+1 << "\n"; } } return 0; } /* is A: 1 -1 1 1 -1 -1 1 -1 1 -1 -------------- -1 -1 -1 1 1 = (potentially) same - different A: (potentially) same - different C: (potentially) same - different G: (potentially) same - different T: (potentially) same - different A: true same - true different + maybe same ? -> C -> ? -> ? -> -2 + 2 = 0 ? ? G ? ? -> C -> ? -> ? -> 1 + 3 = 4 ? C ? ? => A+C+G+T = 4 * same symbol amount ATGA TCTA A: 3 - 1 = 2 C: 3 - 1 = 2 G: 3 - 1 = 2 T: 1 - 3 = -2 CAAA ATGA A: 1 - 3 = -2 C: 3 - 1 = 2 G: 3 - 1 = 2 T: 3 - 1 = 2 4 3 1 ACC CCA ACA AAA ans: 3 4 4 3 CATT CAAA ATGA TCTA ans: 4 */

Compilation message (stderr)

genetics.cpp: In function 'int main()':
genetics.cpp:52:33: warning: array subscript has type 'char' [-Wchar-subscripts]
   52 |             int v = c_to_id[s[j]];
      |                                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...