#include "dna.h"
#include<bits/stdc++.h>
using namespace std;
vector<int> Aa,Ta,Ca,Ab,Tb,Cb,same;
void init(std::string a, std::string b) {
int n=a.length();
Aa.resize(n+1);
Ta.resize(n+1);
Ca.resize(n+1);
Ab.resize(n+1);
Tb.resize(n+1);
Cb.resize(n+1);
same.resize(n+1);
Aa[0]=Ta[0]=Ca[0]=Ab[0]=Tb[0]=Cb[0]=same[0]=0;
for(int i=0;i<n;i++){
Aa[i+1]=Aa[i];
Ta[i+1]=Ta[i];
Ca[i+1]=Ca[i];
Ab[i+1]=Ab[i];
Tb[i+1]=Tb[i];
Cb[i+1]=Cb[i];
same[i+1]=same[i];
if(a[i]=='A')Aa[i+1]++;
else if(a[i]=='T')Ta[i+1]++;
else if(a[i]=='C')Ca[i+1]++;
if(b[i]=='A')Ab[i+1]++;
else if(b[i]=='T')Tb[i+1]++;
else if(b[i]=='C')Cb[i+1]++;
if(a[i]==b[i]){
same[i+1]++;
}
}
}
int get_distance(int x, int y) {
if(Aa[y+1]-Aa[x]==Ab[y+1]-Ab[x]&&Ta[y+1]-Ta[x]==Tb[y+1]-Tb[x]&&Ca[y+1]-Ca[x]==Cb[y+1]-Cb[x]){
return y-x-same[y+1]+same[x];
}
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... |