제출 #228592

#제출 시각아이디문제언어결과실행 시간메모리
228592Haunted_CppGenetics (BOI18_genetics)C++17
74 / 100
1448 ms19064 KiB
#include <bits/stdc++.h> #pragma GCC optimize ("Ofast") #pragma GCC target("fma,sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native") #pragma GCC optimize("unroll-loops") using namespace std; bitset<4101> A [4101], C [4101], T [4101], G [4101]; int main () { ios::sync_with_stdio(0); cin.tie(0); int n, m, k; cin >> n >> m >> k; if (n <= 100) { k = m - k; for (int i = 0; i < n; i++) { string w; cin >> w; for (int j = 0; j < (int) w.size(); j++) { char to = w[j]; if (to == 'A') A[i][j] = 1; if (to == 'C') C[i][j] = 1; if (to == 'T') T[i][j] = 1; if (to == 'G') G[i][j] = 1; } } bitset<4101> diff; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j) continue; diff = A[i] & A[j]; diff |= C[i] & C[j]; diff |= T[i] & T[j]; diff |= G[i] & G[j]; if (diff.count() != k) goto fimA; } cout << i + 1 << '\n'; return 0; fimA:; } } else { bitset<4101> g [4101]; for (int i = 0; i < n; i++) { string w; cin >> w; for (int j = 0; j < (int) w.size(); j++) { char to = w[j]; assert (to != 'T'); assert (to != 'G'); g[i][j] = (to == 'A'); } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j) continue; bitset<4101> cur = (g[i] ^ g[j]); int diff = cur.count(); if (diff != k) goto fimB; } cout << i + 1 << '\n'; return 0; fimB:; } return 0; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

genetics.cpp: In function 'int main()':
genetics.cpp:37:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 if (diff.count() != k) goto fimA;
                     ~~~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...