//#include "dna.h"
#include <bits/stdc++.h>
using namespace std;
int n,ct[5][100005][5],a[5][5],num,num2,tmp,ans;
int ps[100005][5][5];
char s[8]={'A','C','T'};
void init(std::string a, std::string b) {
n=a.length();
for (int i=0;i<n;i++){
for (int j=0;j<3;j++){
if (a[i] == s[j]) ct[1][i][j]++;
if (b[i] == s[j]) ct[2][i][j]++;
}
for (int j=0;j<3;j++){
for (int k=0;k<3;k++){
if (a[i] == s[j] && b[i] == s[k])
ps[i][j][k]++;
}
}
if (i == 0) continue;
for (int j=0;j<3;j++){
for (int k=0;k<3;k++){
ps[i][j][k]+=ps[i-1][j][k];
}
}
for (int j=0;j<3;j++){
ct[1][i][j]+=ct[1][i-1][j];
ct[2][i][j]+=ct[2][i-1][j];
}
}
}
int get_distance(int x, int y) {
ans=0;
for (int i=0;i<3;i++){
if (x == 0 && ct[1][y][i] != ct[2][y][i])
return -1;
if (x != 0 && ct[1][y][i]-ct[1][x-1][i] != ct[2][y][i]-ct[2][x-1][i])
return -1;
}
for (int i=0;i<3;i++){
for (int j=0;j<3;j++){
if (x == 0) a[i][j]=ps[y][i][j];
else a[i][j]=ps[y][i][j]-ps[x-1][i][j];
}
}
for (int i=0;i<3;i++){
for (int j=0;j<3;j++){
tmp=min(a[i][j],a[j][i]);
if (i != j) ans+=tmp;
a[i][j]-=tmp;
if (i != j) a[j][i]-=tmp;
}
}
for (int i=0;i<3;i++){
for (int j=0;j<3;j++){
if (a[i][j] != 0)
return a[i][j]*2+ans;
}
}
return ans;
}
/*
string r,g;
int aa,bb;
int main(){
cin >> r >> g;
init(r,g);
for (int i=1;i<=4;i++){
cin >> aa >> bb;
cout << get_distance(aa,bb) << "\n";
}
}*/
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
57 ms |
15648 KB |
Output is correct |
2 |
Correct |
59 ms |
16000 KB |
Output is correct |
3 |
Correct |
55 ms |
14696 KB |
Output is correct |
4 |
Correct |
57 ms |
16004 KB |
Output is correct |
5 |
Correct |
0 ms |
300 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
11 ms |
14540 KB |
Output is correct |
5 |
Correct |
11 ms |
14668 KB |
Output is correct |
6 |
Correct |
11 ms |
14568 KB |
Output is correct |
7 |
Correct |
11 ms |
13700 KB |
Output is correct |
8 |
Correct |
12 ms |
14644 KB |
Output is correct |
9 |
Correct |
10 ms |
14668 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
11 ms |
14540 KB |
Output is correct |
5 |
Correct |
11 ms |
14668 KB |
Output is correct |
6 |
Correct |
11 ms |
14568 KB |
Output is correct |
7 |
Correct |
11 ms |
13700 KB |
Output is correct |
8 |
Correct |
12 ms |
14644 KB |
Output is correct |
9 |
Correct |
10 ms |
14668 KB |
Output is correct |
10 |
Correct |
57 ms |
15744 KB |
Output is correct |
11 |
Correct |
59 ms |
15988 KB |
Output is correct |
12 |
Correct |
60 ms |
15280 KB |
Output is correct |
13 |
Correct |
61 ms |
15736 KB |
Output is correct |
14 |
Correct |
59 ms |
16324 KB |
Output is correct |
15 |
Correct |
57 ms |
16260 KB |
Output is correct |
16 |
Correct |
57 ms |
15364 KB |
Output is correct |
17 |
Correct |
54 ms |
15756 KB |
Output is correct |
18 |
Correct |
54 ms |
16260 KB |
Output is correct |
19 |
Correct |
45 ms |
15432 KB |
Output is correct |
20 |
Correct |
45 ms |
15740 KB |
Output is correct |
21 |
Correct |
48 ms |
16344 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
11 ms |
14540 KB |
Output is correct |
5 |
Correct |
11 ms |
14668 KB |
Output is correct |
6 |
Correct |
11 ms |
14568 KB |
Output is correct |
7 |
Correct |
11 ms |
13700 KB |
Output is correct |
8 |
Correct |
12 ms |
14644 KB |
Output is correct |
9 |
Correct |
10 ms |
14668 KB |
Output is correct |
10 |
Correct |
11 ms |
13404 KB |
Output is correct |
11 |
Correct |
12 ms |
14668 KB |
Output is correct |
12 |
Correct |
11 ms |
13772 KB |
Output is correct |
13 |
Correct |
13 ms |
14508 KB |
Output is correct |
14 |
Correct |
14 ms |
14668 KB |
Output is correct |
15 |
Correct |
11 ms |
14668 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
57 ms |
15648 KB |
Output is correct |
2 |
Correct |
59 ms |
16000 KB |
Output is correct |
3 |
Correct |
55 ms |
14696 KB |
Output is correct |
4 |
Correct |
57 ms |
16004 KB |
Output is correct |
5 |
Correct |
0 ms |
300 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
332 KB |
Output is correct |
8 |
Correct |
0 ms |
204 KB |
Output is correct |
9 |
Correct |
0 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
11 ms |
14540 KB |
Output is correct |
12 |
Correct |
11 ms |
14668 KB |
Output is correct |
13 |
Correct |
11 ms |
14568 KB |
Output is correct |
14 |
Correct |
11 ms |
13700 KB |
Output is correct |
15 |
Correct |
12 ms |
14644 KB |
Output is correct |
16 |
Correct |
10 ms |
14668 KB |
Output is correct |
17 |
Correct |
57 ms |
15744 KB |
Output is correct |
18 |
Correct |
59 ms |
15988 KB |
Output is correct |
19 |
Correct |
60 ms |
15280 KB |
Output is correct |
20 |
Correct |
61 ms |
15736 KB |
Output is correct |
21 |
Correct |
59 ms |
16324 KB |
Output is correct |
22 |
Correct |
57 ms |
16260 KB |
Output is correct |
23 |
Correct |
57 ms |
15364 KB |
Output is correct |
24 |
Correct |
54 ms |
15756 KB |
Output is correct |
25 |
Correct |
54 ms |
16260 KB |
Output is correct |
26 |
Correct |
45 ms |
15432 KB |
Output is correct |
27 |
Correct |
45 ms |
15740 KB |
Output is correct |
28 |
Correct |
48 ms |
16344 KB |
Output is correct |
29 |
Correct |
11 ms |
13404 KB |
Output is correct |
30 |
Correct |
12 ms |
14668 KB |
Output is correct |
31 |
Correct |
11 ms |
13772 KB |
Output is correct |
32 |
Correct |
13 ms |
14508 KB |
Output is correct |
33 |
Correct |
14 ms |
14668 KB |
Output is correct |
34 |
Correct |
11 ms |
14668 KB |
Output is correct |
35 |
Correct |
1 ms |
204 KB |
Output is correct |
36 |
Correct |
57 ms |
14696 KB |
Output is correct |
37 |
Correct |
60 ms |
16000 KB |
Output is correct |
38 |
Correct |
59 ms |
15500 KB |
Output is correct |
39 |
Correct |
60 ms |
16384 KB |
Output is correct |
40 |
Correct |
60 ms |
16380 KB |
Output is correct |
41 |
Correct |
10 ms |
14668 KB |
Output is correct |
42 |
Correct |
55 ms |
15616 KB |
Output is correct |
43 |
Correct |
54 ms |
16380 KB |
Output is correct |
44 |
Correct |
56 ms |
16284 KB |
Output is correct |
45 |
Correct |
46 ms |
15476 KB |
Output is correct |
46 |
Correct |
46 ms |
16380 KB |
Output is correct |
47 |
Correct |
47 ms |
16384 KB |
Output is correct |