Submission #1216845

#TimeUsernameProblemLanguageResultExecution timeMemory
1216845islam_2010Mutating DNA (IOI21_dna)C++20
43 / 100
1595 ms2888 KiB
#pragma GCC optimize("O3") #include "dna.h" #include <bits/stdc++.h> using namespace std; string s, c; const int sz = 100005; int pref_diff[sz]; void init(string a, string b){ s=a; c=b; pref_diff[0] = (a[0]!=b[0]); for(int i = 1; i < s.size(); i++){ pref_diff[i] = pref_diff[i-1] + (a[i]!=b[i]); } } int get_distance(int x, int y){ string ss=s.substr(x, y-x+1), cc=c.substr(x, y-x+1); string s2 = ss, c2=cc; sort(ss.begin(), ss.end()); sort(cc.begin(), cc.end()); if(ss!=cc){ return -1; } if(s2==c2){ return 0; } if(y-x<3){ sort(ss.begin(), ss.end()); sort(cc.begin(), cc.end()); if(ss!=cc){ return -1; }if(s2==c2){ return 0; }if(y-x+1==1){ return 0; }else if(y-x+1==2){ return 1; }else { int cnt = 0; if(s2[0]!=c2[0]){ cnt++; }if(s2[1]!=c2[1]){ cnt++; }if(s2[2]!=c2[2]){ cnt++; }if(cnt==2){ return 1; }else { return 2; } } }else { int aa = pref_diff[y]-pref_diff[x-1]; return aa/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...