#include<bits/stdc++.h>
#include "dna.h"
using namespace std;
string A,B;
int p[100001][3][3],i,c,d,e,f,g,j,k,h[3][3],ch[100001][3],ch1[100001][3],dif[2][3],ans;
void init(string a,string b){
for(i=0;i<3;i++){
ch[0][i]=0;
ch1[0][i]=0;
for(j=0;j<3;j++){
p[0][i][j]=0;
}
}
for(i=0;i<a.size();i++){
if(a[i]=='A'){
d=0;
}
else if(a[i]=='C'){
d=1;
}
else{
d=2;
}
if(b[i]=='A'){
e=0;
}
else if(b[i]=='C'){
e=1;
}
else{
e=2;
}
for(j=0;j<3;j++){
if(j==d){
ch[i+1][j]=ch[i][j]+1;
}
else{
ch[i+1][j]=ch[i][j];
}
if(j==e){
ch1[i+1][j]=ch1[i][j]+1;
}
else{
ch1[i+1][j]=ch1[i][j];
}
for(k=0;k<3;k++){
if(j==d&&k==e){
p[i+1][j][k]=p[i][j][k]+1;
}
else{
p[i+1][j][k]=p[i][j][k];
}
}
}
}
}
int get_distance(int x,int y){
ans=0;
for(i=0;i<3;i++){
dif[0][0]=ch[y+1][0]-ch[x][0];
dif[0][1]=ch[y+1][1]-ch[x][1];
dif[0][2]=ch[y+1][2]-ch[x][2];
dif[1][0]=ch1[y+1][0]-ch1[x][0];
dif[1][1]=ch1[y+1][1]-ch1[x][1];
dif[1][2]=ch1[y+1][2]-ch1[x][2];
for(j=0;j<3;j++){
h[i][j]=p[y+1][i][j]-p[x][i][j];
}
}
if(dif[0][0]!=dif[1][0]||dif[0][1]!=dif[1][1]||dif[0][2]!=dif[1][2]){
return -1;
}
f=min(h[0][1],min(h[1][2],h[2][0]));
g=min(h[1][0],min(h[2][1],h[0][2]));
ans+=(f+g)*2;
h[0][1]-=f;
h[1][2]-=f;
h[2][0]-=f;
h[1][0]-=g;
h[2][1]-=g;
h[0][2]-=g;
return ans+h[0][1]+h[1][2]+h[2][0];
}
Compilation message
dna.cpp: In function 'void init(std::string, std::string)':
dna.cpp:14:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
14 | for(i=0;i<a.size();i++){
| ~^~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
54 ms |
7932 KB |
Output is correct |
2 |
Correct |
49 ms |
7992 KB |
Output is correct |
3 |
Correct |
49 ms |
7460 KB |
Output is correct |
4 |
Correct |
49 ms |
8068 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
10 ms |
6612 KB |
Output is correct |
5 |
Correct |
9 ms |
6732 KB |
Output is correct |
6 |
Correct |
10 ms |
6680 KB |
Output is correct |
7 |
Correct |
8 ms |
6204 KB |
Output is correct |
8 |
Correct |
8 ms |
6732 KB |
Output is correct |
9 |
Correct |
7 ms |
6732 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
10 ms |
6612 KB |
Output is correct |
5 |
Correct |
9 ms |
6732 KB |
Output is correct |
6 |
Correct |
10 ms |
6680 KB |
Output is correct |
7 |
Correct |
8 ms |
6204 KB |
Output is correct |
8 |
Correct |
8 ms |
6732 KB |
Output is correct |
9 |
Correct |
7 ms |
6732 KB |
Output is correct |
10 |
Correct |
49 ms |
7908 KB |
Output is correct |
11 |
Correct |
51 ms |
7944 KB |
Output is correct |
12 |
Correct |
50 ms |
7952 KB |
Output is correct |
13 |
Correct |
55 ms |
8052 KB |
Output is correct |
14 |
Correct |
51 ms |
8360 KB |
Output is correct |
15 |
Correct |
48 ms |
8228 KB |
Output is correct |
16 |
Correct |
45 ms |
7952 KB |
Output is correct |
17 |
Correct |
45 ms |
8056 KB |
Output is correct |
18 |
Correct |
46 ms |
8320 KB |
Output is correct |
19 |
Correct |
42 ms |
8044 KB |
Output is correct |
20 |
Correct |
41 ms |
8084 KB |
Output is correct |
21 |
Correct |
41 ms |
8388 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
10 ms |
6612 KB |
Output is correct |
5 |
Correct |
9 ms |
6732 KB |
Output is correct |
6 |
Correct |
10 ms |
6680 KB |
Output is correct |
7 |
Correct |
8 ms |
6204 KB |
Output is correct |
8 |
Correct |
8 ms |
6732 KB |
Output is correct |
9 |
Correct |
7 ms |
6732 KB |
Output is correct |
10 |
Correct |
8 ms |
6092 KB |
Output is correct |
11 |
Correct |
11 ms |
6732 KB |
Output is correct |
12 |
Incorrect |
8 ms |
6220 KB |
Output isn't correct |
13 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
54 ms |
7932 KB |
Output is correct |
2 |
Correct |
49 ms |
7992 KB |
Output is correct |
3 |
Correct |
49 ms |
7460 KB |
Output is correct |
4 |
Correct |
49 ms |
8068 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
10 ms |
6612 KB |
Output is correct |
12 |
Correct |
9 ms |
6732 KB |
Output is correct |
13 |
Correct |
10 ms |
6680 KB |
Output is correct |
14 |
Correct |
8 ms |
6204 KB |
Output is correct |
15 |
Correct |
8 ms |
6732 KB |
Output is correct |
16 |
Correct |
7 ms |
6732 KB |
Output is correct |
17 |
Correct |
49 ms |
7908 KB |
Output is correct |
18 |
Correct |
51 ms |
7944 KB |
Output is correct |
19 |
Correct |
50 ms |
7952 KB |
Output is correct |
20 |
Correct |
55 ms |
8052 KB |
Output is correct |
21 |
Correct |
51 ms |
8360 KB |
Output is correct |
22 |
Correct |
48 ms |
8228 KB |
Output is correct |
23 |
Correct |
45 ms |
7952 KB |
Output is correct |
24 |
Correct |
45 ms |
8056 KB |
Output is correct |
25 |
Correct |
46 ms |
8320 KB |
Output is correct |
26 |
Correct |
42 ms |
8044 KB |
Output is correct |
27 |
Correct |
41 ms |
8084 KB |
Output is correct |
28 |
Correct |
41 ms |
8388 KB |
Output is correct |
29 |
Correct |
8 ms |
6092 KB |
Output is correct |
30 |
Correct |
11 ms |
6732 KB |
Output is correct |
31 |
Incorrect |
8 ms |
6220 KB |
Output isn't correct |
32 |
Halted |
0 ms |
0 KB |
- |