Submission #1142081

#TimeUsernameProblemLanguageResultExecution timeMemory
1142081techvioMutating DNA (IOI21_dna)C++20
43 / 100
1593 ms3912 KiB
#include "dna.h" #include <bits/stdc++.h> using namespace std; string sa; string sb; vector<int> pas, pts; vector<int> pab, ptb; void init(std::string a, std::string b) { sa = a; sb = b; int n = sa.size(); pas.resize(n+1, 0); pts.resize(n+1, 0); pab.resize(n+1, 0); ptb.resize(n+1, 0); for (int i = 0; i < n; i++) { pas[i+1] = pas[i]+(sa[i] == 'A'); pts[i+1] = pts[i]+(sa[i] == 'T'); } for (int i = 0; i < n; i++) { pab[i+1] = pab[i]+(sb[i] == 'A'); ptb[i+1] = ptb[i]+(sb[i] == 'T'); } } int get_distance(int x, int y) { int c = 0; int cas = pas[y+1]-pas[x]; int cts = pts[y+1]-pts[x]; int cab = pab[y+1]-pab[x]; int ctb = ptb[y+1]-ptb[x]; if (cas != cab || cts != ctb) return -1; for (int i = x; i <= y; i++) if (sa[i] != sb[i]) c++; int ans = (c+1)/2; return ans; }
#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...