#include <bits/stdc++.h>
using namespace std;
int pref[100001]={0};
int pf[100001][2][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<2;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<2;j++)
{
for(int z=0;z<3;z++)pf[i][j][z]=pf[i-1][j][z];
}
pref[i]=pref[i-1];
if(a[i-1]!=b[i-1])
{
pref[i]++;
}
pf[i][0][m[a[i-1]]]++;
pf[i][1][m[b[i-1]]]++;
}
}
int get_distance(int x, int y)
{
bool check=true;
for(int j=0;j<3;j++)
{
if(pf[y+1][1][j]-pf[x][1][j]!=pf[y+1][0][j]-pf[x][0][j])return -1;
}
return (pref[y+1]-pref[x])%2+(pref[y+1]-pref[x])/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... |