Submission #1234708

#TimeUsernameProblemLanguageResultExecution timeMemory
1234708gry3125Mutating DNA (IOI21_dna)C++20
0 / 100
14 ms6188 KiB
#include "dna.h" #include <bits/stdc++.h> #define ll long long int using namespace std; string a, b; int n; vector<ll> aa, at, ac, ba, bt, bc; void init(string aa, string bb) { a = aa; b = bb; n = a.size(); aa.resize(n); ba.resize(n); at.resize(n); bt.resize(n); ac.resize(n); bc.resize(n); if (a[0] == 'A') aa[0]++; if (b[0] == 'A') ba[0]++; if (a[0] == 'T') at[0]++; if (b[0] == 'T') bt[0]++; if (a[0] == 'C') ac[0]++; if (b[0] == 'C') bc[0]++; for (int i = 1; i < n; i++) { aa[i] = aa[i-1]; at[i] = at[i-1]; ac[i] = ac[i-1]; ba[i] = ba[i-1]; bt[i] = bt[i-1]; bc[i] = bc[i-1]; if (a[i] == 'A') aa[i]++; if (b[i] == 'A') ba[i]++; if (a[i] == 'T') at[i]++; if (b[i] == 'T') bt[i]++; if (a[i] == 'C') ac[i]++; if (b[i] == 'C') bc[i]++; } } int get_distance(int x, int y) { ll asa = aa[y], bsa = ba[y]; ll ast = at[y], bst = bt[y]; ll asc = ac[y], bsc = bc[y]; if (x > 0) { asa -= aa[x-1]; bsa -= ba[x-1]; ast -= at[x-1]; bst -= bt[x-1]; asc -= ac[x-1]; bsc -= bc[x-1]; } if (asa != bsa) return -1; if (ast != bst) return -1; if (asc != bsc) return -1; int cnt = 0; for (int i = x; i <= y; i++) { if (a[i] != b[i]) cnt++; } return cnt/2; }
#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...