제출 #1234728

#제출 시각아이디문제언어결과실행 시간메모리
1234728gry3125DNA 돌연변이 (IOI21_dna)C++20
22 / 100
1595 ms7236 KiB
#include "dna.h" #include <bits/stdc++.h> #define ll long long int using namespace std; string a, b; int n; vector<ll> as[3], bs[3]; // [0] = A, [1] = T, [2] = C int get_distance(int x, int y) { for (int i = 0; i < 3; i++) { ll suma = as[i][y], sumb = bs[i][y]; if (x > 0) { suma -= as[i][x-1]; sumb -= bs[i][x-1]; } if (suma != sumb) return -1; } int cnt = 0; for (int i = x; i <= y; i++) { if (a[i] != b[i]) cnt++; } return cnt/2; } // int main() { // string aa, bb; cin >> aa >> bb; void init(string aa, string bb) { a = aa; b = bb; n = a.size(); for (int i = 0; i < 3; i++) { as[i].resize(n); bs[i].resize(n); } if (a[0] == 'A') as[0][0]++; if (b[0] == 'A') bs[0][0]++; if (a[0] == 'T') as[1][0]++; if (b[0] == 'T') bs[1][0]++; if (a[0] == 'C') as[2][0]++; if (b[0] == 'C') bs[2][0]++; for (int i = 1; i < n; i++) { for (int j = 0; j < 3; j++) { as[j][i] = as[j][i-1]; bs[j][i] = bs[j][i-1]; } if (a[i] == 'A') as[0][i]++; if (b[i] == 'A') bs[0][i]++; if (a[i] == 'T') as[1][i]++; if (b[i] == 'T') bs[1][i]++; if (a[i] == 'C') as[2][i]++; if (b[i] == 'C') bs[2][i]++; } }
#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...