제출 #521580

#제출 시각아이디문제언어결과실행 시간메모리
521580marat0210DNA 돌연변이 (IOI21_dna)C++17
0 / 100
31 ms4416 KiB
#include <dna.h> #include <bits/stdc++.h> using namespace std; vector <int> posa, posb; void init(string a, string b) { int n = a.size(); for (int i = 0; i < n; ++i) { if (a[i] == 'A') { posa.push_back(0); } else if (a[i] == 'T') { posa.push_back(1); } else if (a[i] == 'C') { posa.push_back(2); } if (b[i] == 'A') { posb.push_back(0); } else if (b[i] == 'T') { posb.push_back(1); } else if (b[i] == 'C') { posb.push_back(2); } } } int get_distance(int x, int y) { if (y - x == 2) { bool ok = true; for (int i = x; i <= y; ++i) { if (posa[i] != posb[i]) { ok = false; break; } } if (ok) { return 0; } ok = true; for (int i = x; i <= y; ++i) { bool cur = false; for (int j = x; j <= y; ++j) { if (posa[i] == posb[j]) { cur = true; } } if (!cur) { ok = false; } } if (!ok) { return -1; } ok = false; for (int i = x; i <= y; ++i) { if (posa[i] == posb[i]) { ok = true; break; } } if (ok) { return 1; } else { return 2; } } else if (y - x == 1) { if (posa[x] == posb[x] and posa[y] == posb[y]) { return 0; } else if (posa[x] == posb[y] and posb[x] == posa[y]) { return 1; } else { return -1; } } else { if (posa[x] == posb[x]) { return 0; } else { return -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...
#Verdict Execution timeMemoryGrader output
Fetching results...