Submission #1142242

#TimeUsernameProblemLanguageResultExecution timeMemory
1142242redacodeMutating DNA (IOI21_dna)C++20
0 / 100
170 ms53440 KiB
#include<bits/stdc++.h> using namespace std; vector<map<string,int>> V(1e5); string ax,bx; void init(std::string a, std::string b) { ax=a,bx=b; int cnt =0; string s = ""; s+=a[0]; s+=b[0]; string arr[6] = {"AT","TA","AC","CA","CT","TC"}; for(auto x: arr){ if(x==s){ V[0][x]=1; }else{ V[0][x]=0; } } for(int i=1;i<a.size();i++){ s = ""; s += a[i]; s += b[i]; //cout << s; for(auto x: arr){ if(x==s){ V[i][x]=V[i-1][x]+1; //c//out << x << V[i][x] <<endl; }else{ V[i][x]=V[i-1][x]; } } } } int get_distance(int x, int y) { int cnt =0; int r =0; string arr[6] = {"AT","TA","AC","CA","CT","TC"}; cnt += min(V[y]["AT"]-V[x-1]["AT"],V[y]["TA"]-V[x-1]["TA"]); r += max(V[y]["AT"]-V[x-1]["AT"],V[y]["TA"]-V[x-1]["TA"]) - min(V[y]["AT"]-V[x-1]["AT"],V[y]["TA"]-V[x-1]["TA"]); //cout << cnt<< " " << r<<endl; cnt += min(V[y]["AC"]-V[x-1]["AC"],V[y]["CA"]-V[x-1]["CA"]); r += max(V[y]["AC"]-V[x-1]["AC"],V[y]["CA"]-V[x-1]["CA"]) - min(V[y]["AC"]-V[x-1]["AC"],V[y]["CA"]-V[x-1]["CA"]); //cout << cnt<< " " << r<<endl; cnt += min(V[y]["CT"]-V[x-1]["CT"],V[y]["TC"]-V[x-1]["TC"]); r += max(V[y]["CT"]-V[x-1]["CT"],V[y]["TC"]-V[x-1]["TC"]) - min(V[y]["CT"]-V[x-1]["CT"],V[y]["TC"]-V[x-1]["TC"]); //cout << cnt<< " " << r<<endl; cnt += r*2/3; return cnt; }
#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...