Submission #472250

#TimeUsernameProblemLanguageResultExecution timeMemory
472250aris12345678Mutating DNA (IOI21_dna)C++17
35 / 100
39 ms5048 KiB
#include "dna.h" #include <bits/stdc++.h> using namespace std; const int mxN = 100005; int pref[mxN], pref1[mxN], pref2[mxN]; void init(string a, string b) { int n = int(a.length()); for(int i = 0; i < n; i++) { pref[i+1] = pref[i], pref1[i+1] = pref1[i], pref2[i+1] = pref2[i]; if(a[i] != b[i]) pref[i+1]++; if(a[i] == 'A') pref1[i+1]++; if(b[i] == 'A') pref2[i+1]++; } } int get_distance(int x, int y) { y++; if(pref2[y]-pref2[x] != pref1[y]-pref1[x]) return -1; return (pref[y]-pref[x])/2; } /* int main() { string a, b; cin >> a >> b; init(a, b); int n = int(a.length()); for(int i = 1; i <= n; i++) { cout << pref[i] << " "; } cout << "\n"; for(int i = 1; i <= n; i++) { cout << pref1[i] << " "; } cout << "\n"; for(int i = 1; i <= n; i++) { cout << pref2[i] << " "; } cout << "\n"; int q; scanf("%d", &q); while(q--) { int x, y; scanf("%d %d", &x, &y); printf("%d\n", get_distance(x, y)); } return 0; } */
#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...