#include <iostream>
using namespace std;
int sp[100001][3][3];
void init(string a, string b){
char aux[]={'A','C','T'};
int i,j,k;
for(i=0;i<a.size();i++){
for(j=0;j<3;j++){
for(k=0;k<3;k++){
sp[i+1][j][k]=sp[i-1][j][k];
if(a[i]==aux[j] && b[i]==aux[k]) sp[i+1][j][k]++;
}
}
}
}
int get_distance(int x,int y){
int perechi=0,triplete=0,i,j,sum1,sum2;
for(i=0;i<3;i++){
j=(i+1)%3;
sum1=sp[y+1][i][j]-sp[x][i][j];sum2=sp[y+1][j][i]-sp[x][j][i];
if(!i) triplete=abs(sum1-sum2);
else if(abs(sum1-sum2)!=triplete) return -1;
perechi+=min(sum1,sum2);
}
return perechi+triplete*2;
}
# | 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... |