#include "dna.h"
using namespace std;
const int maxn = 1e5+5;
string s1,s2;
int l1,l2,cnt;
int c1[maxn][3],c2[maxn][3];
void init(string a, string b) {
s1=a; s2=b;
l1=s1.length(),l2=s2.length();
for(int i=0;i<l1;++i){
if(s1[i]=='C') c1[i+1][0]++;
else if(s1[i]=='A') c1[i+1][1]++;
else if(s1[i]=='T') c1[i+1][2]++;
}
for(int i=0;i<l2;++i){
if(s2[i]=='C') c2[i+1][0]++;
else if(s2[i]=='A') c2[i+1][1]++;
else if(s2[i]=='T') c2[i+1][2]++;
}
}
int get_distance(int x, int y) {
for(int i=0;i<3;++i){
if(c1[y+1][i]-c1[x][i]!=c2[y+1][i]-c2[x][i]) return -1;
}
string n,m;
for(int i=x;i<=y;++i){
if(s1[i]!=s2[i]) { n.push_back(s1[i]); m.push_back(s2[i]); }
}
cnt=0;
for(int i=x;i<=y;++i){
for(int j=x;j<=y;++j){
if(n[i]!=m[j] && i!=j && n[i]!=m[i] && n[j]!=m[j]){
swap(n[i],m[j]);
cnt++;
}
}
}
return cnt;
}
# | 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... |