#include <iostream>
#include<bits/stdc++.h>
using namespace std;
std::vector<vector<int>> ArrMist(6);
vector<pair<char,char>> Errors={{'A','T'},{'T','A'},
{'C','A'},{'A','C'},
{'T','C'},{'C','T'}};
void init(string a, string b){
for(int i=0;i<6;i++){
ArrMist[i].push_back(0);
}
for(int i=0;i<a.size();i++){
int val=0;
for(int j=0;j<6;j++){
int val=0;
if(Errors[j].first==a[i] && Errors[j].second==b[i]){
val=1;
}
ArrMist[j].push_back(ArrMist[j][i]+val);
}
}
}
int get_distance(int x, int y){
y++;
int steps=0;
steps+=min(ArrMist[0][y]-ArrMist[0][x],ArrMist[1][y]-ArrMist[1][x]);
int da=ArrMist[0][y]-ArrMist[0][x]-(ArrMist[1][y]-ArrMist[1][x]);
steps+=min(ArrMist[2][y]-ArrMist[2][x],ArrMist[3][y]-ArrMist[3][x]);
int db=ArrMist[2][y]-ArrMist[2][x]-(ArrMist[3][y]-ArrMist[3][x]);
steps+=min(ArrMist[4][y]-ArrMist[4][x],ArrMist[5][y]-ArrMist[5][x]);
int dc=ArrMist[4][y]-ArrMist[4][x]-(ArrMist[5][y]-ArrMist[5][x]);
if(da==db && db == dc){
steps+=abs(da)*2;
return steps;
}
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... |