#include "dna.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fori(x,y,z) for(ll x=y;x<=z;x++)
vector<vector<ll>>cnt,cnt1;
vector<ll>diff;
void init(string a, string b) {
ll n=a.size();
cnt.resize(n+10);
cnt1.resize(n+10);
diff.assign(n+10,0);
fori(i,0,n){
cnt[i].resize(3,0);
cnt1[i].resize(3,0);
}
fori(i,0,n-1){
fori(j,0,2){
cnt[i+1][j]=cnt[i][j];
cnt1[i+1][j]=cnt[i][j];
}
diff[i+1]=diff[i];
if(a[i]=='A')
cnt[i+1][0]++;
else if(a[i]=='C')
cnt[i+1][1]++;
else
cnt[i+1][2]++;
if(b[i]=='A')
cnt1[i+1][0]++;
else if(b[i]=='C')
cnt1[i+1][1]++;
else
cnt1[i+1][2]++;
if(a[i]!=b[i])
diff[i+1]++;
}
}
int get_distance(int x, int y) {
x++;
y++;
bool okay=1;
fori(i,0,2){
if(cnt[y][i]-cnt[x-1][i]!=cnt1[y][i]-cnt1[x-1][i])
okay=0;
}
if(okay==0)
return -1;
return diff[y]-diff[x-1]-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... |