#include <bits/stdc++.h>
using namespace std;
int pf[100001][3][3];
void init(string a, string b)
{
int n=a.size();
map<char,int>m={{'A',0},{'C',1},{'T',2}};
for(int j=0;j<3;j++)
{
for(int z=0;z<3;z++)
{
pf[0][j][z]=0;
}
}
for(int i=1;i<=n;i++)
{
for(int j=0;j<3;j++)
{
for(int z=0;z<3;z++)pf[i][j][z]=pf[i-1][j][z];
}
pf[i][m[a[i-1]]][m[b[i-1]]]++;
}
}
int get_distance(int x, int y)
{
int temp[3][3];
for(int j=0;j<3;j++)
{
for(int i=0;i<3;i++)
{
temp[i][j]=(pf[y+1][i][j]-pf[x][i][j]);
}
}
int sum1=0;
for(int i=0;i<3;i++)
{
if(temp[i][(i+1)%3]+temp[i][(i+2)%3]!=temp[(i+1)%3][i]+temp[(i+2)%3][i])return -1;
sum1+=(temp[i][(i+1)%3]+temp[i][(i+2)%3]);
}
int sum=0;
sum+=min(temp[0][1],temp[1][0]);
sum+=min(temp[1][2],temp[2][1]);
sum+=min(temp[0][2],temp[2][0]);
if(sum*2!=sum1)sum+=((sum1-sum*2)/3)*2;
return sum;
}
# | 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... |