#include "dna.h"
#include<bits/stdc++.h>
using namespace std;
string A,B;
map<int,int>at;
map<int,int>ta;
map<int,int>ac;
map<int,int>ca;
map<int,int>tc;
map<int,int>ct;
void init(string a, string b){
at[-1]=0;
ac[-1]=0;
tc[-1]=0;
ta[-1]=0;
ct[-1]=0;
ca[-1]=0;
string A=a;
string B=b;
for(int so=0;so<a.size();so++){
if(A[so]=='A'&&B[so]=='T'){at[so]=1+at[so-1]; }
else {at[so]=at[so-1];}
if(A[so]=='T'&&B[so]=='A'){ta[so]=1+ta[so-1];}
else {ta[so]=ta[so-1];}
if(A[so]=='A'&&B[so]=='C'){ac[so]=1+ac[so-1];}
else {ac[so]=ac[so-1];}
if(A[so]=='C'&&B[so]=='A'){ca[so]=1+ca[so-1];}
else {ca[so]=ca[so-1];}
if(A[so]=='C'&&B[so]=='T'){ct[so]=1+ct[so-1];}
else {ct[so]=ct[so-1];}
if(A[so]=='T'&&B[so]=='C'){tc[so]=1+tc[so-1];}
else {tc[so]=tc[so-1];}
}
}
int get_distance(int x, int y){
if(ac[y]+at[y]-ac[x-1]-at[x-1]==ca[y]+ta[y]-ca[x-1]-ta[x-1]&&ca[y]+ct[y]-ca[x-1]-ct[x-1]==ac[y]+tc[y]-ac[x-1]-tc[x-1]&&tc[y]+ta[y]-tc[x-1]-ta[x-1]==ct[y]+at[y]-ct[x-1]-at[x-1]){
int ans=0;
ans=(min(at[y]-at[x-1],ta[y]-ta[x-1]))+min(ac[y]-ac[x-1],ca[y]-ca[x-1])+min(tc[y]-tc[x-1],ct[y]-ct[x-1])+(2*abs(at[y]-at[x-1]-ta[y]+ta[x-1]));
return ans;
}
else {return -1;}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |