#include <bits/stdc++.h>
#include "dna.h"
using namespace std;
const int N = 1e5 + 5;
int p[N][8],a[8];
void init(string a, string b) {
//A,C,T
//AT - 1
//TA - 2
//AC - 3
//CA - 4
//CT - 5
//TC - 6
int n = a.size();
for (int i = 0; i < n; i++){
string s = ""; s+=a[i]; s+= b[i];
int id=0;
if (s == "AT") id=1;
else if (s == "TA") id = 2;
else if (s == "AC") id = 3;
else if (s == "CA") id = 4;
else if (s == "CT") id = 5;
else if (s == "TC") id = 6;
if (i){
for (int d = 1; d < 7; d++)
p[i][d] = p[i - 1][d];
}
p[i][id]++;
}
}
int get_distance(int x, int y) {
for (int d=1;d<7;d++){
a[d] = p[y][d];
if (x) a[d] -= p[x - 1][d];
}
int ans=0;
for (int d = 1; d < 7; d+=2){
int vl = min(a[d],a[d + 1]);
ans += vl;
a[d] -= vl,a[d+1]-=vl;
}
int mn = min({a[1],a[4],a[6]});
ans += mn*2;
a[1] -= mn,a[4] -= mn,a[6] -= mn;
//146
//ACT
//TAC
mn = min({a[2],a[3],a[5]});
ans += mn*2;
a[2] -= mn,a[3] -= mn,a[5] -= mn;
for (int i = 1; i < 7; i++)
if (a[i]) return -1;
//235
//TAC
//ACT
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
39 ms |
6552 KB |
Output is correct |
2 |
Correct |
36 ms |
6596 KB |
Output is correct |
3 |
Correct |
36 ms |
6360 KB |
Output is correct |
4 |
Correct |
37 ms |
6664 KB |
Output is correct |
5 |
Correct |
0 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
308 KB |
Output is correct |
7 |
Correct |
1 ms |
308 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
308 KB |
Output is correct |
4 |
Correct |
7 ms |
4068 KB |
Output is correct |
5 |
Correct |
7 ms |
4156 KB |
Output is correct |
6 |
Correct |
9 ms |
4160 KB |
Output is correct |
7 |
Correct |
8 ms |
3924 KB |
Output is correct |
8 |
Correct |
7 ms |
4180 KB |
Output is correct |
9 |
Correct |
8 ms |
4180 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
308 KB |
Output is correct |
4 |
Correct |
7 ms |
4068 KB |
Output is correct |
5 |
Correct |
7 ms |
4156 KB |
Output is correct |
6 |
Correct |
9 ms |
4160 KB |
Output is correct |
7 |
Correct |
8 ms |
3924 KB |
Output is correct |
8 |
Correct |
7 ms |
4180 KB |
Output is correct |
9 |
Correct |
8 ms |
4180 KB |
Output is correct |
10 |
Correct |
37 ms |
6520 KB |
Output is correct |
11 |
Correct |
39 ms |
6636 KB |
Output is correct |
12 |
Correct |
37 ms |
6700 KB |
Output is correct |
13 |
Correct |
37 ms |
6772 KB |
Output is correct |
14 |
Correct |
36 ms |
6908 KB |
Output is correct |
15 |
Correct |
39 ms |
6960 KB |
Output is correct |
16 |
Correct |
33 ms |
6620 KB |
Output is correct |
17 |
Correct |
34 ms |
6768 KB |
Output is correct |
18 |
Correct |
35 ms |
6924 KB |
Output is correct |
19 |
Correct |
32 ms |
6692 KB |
Output is correct |
20 |
Correct |
31 ms |
6672 KB |
Output is correct |
21 |
Correct |
33 ms |
6880 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
308 KB |
Output is correct |
4 |
Correct |
7 ms |
4068 KB |
Output is correct |
5 |
Correct |
7 ms |
4156 KB |
Output is correct |
6 |
Correct |
9 ms |
4160 KB |
Output is correct |
7 |
Correct |
8 ms |
3924 KB |
Output is correct |
8 |
Correct |
7 ms |
4180 KB |
Output is correct |
9 |
Correct |
8 ms |
4180 KB |
Output is correct |
10 |
Correct |
7 ms |
3796 KB |
Output is correct |
11 |
Correct |
7 ms |
4164 KB |
Output is correct |
12 |
Correct |
7 ms |
3964 KB |
Output is correct |
13 |
Correct |
8 ms |
4192 KB |
Output is correct |
14 |
Correct |
8 ms |
4192 KB |
Output is correct |
15 |
Correct |
7 ms |
4180 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
39 ms |
6552 KB |
Output is correct |
2 |
Correct |
36 ms |
6596 KB |
Output is correct |
3 |
Correct |
36 ms |
6360 KB |
Output is correct |
4 |
Correct |
37 ms |
6664 KB |
Output is correct |
5 |
Correct |
0 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
308 KB |
Output is correct |
7 |
Correct |
1 ms |
308 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
308 KB |
Output is correct |
11 |
Correct |
7 ms |
4068 KB |
Output is correct |
12 |
Correct |
7 ms |
4156 KB |
Output is correct |
13 |
Correct |
9 ms |
4160 KB |
Output is correct |
14 |
Correct |
8 ms |
3924 KB |
Output is correct |
15 |
Correct |
7 ms |
4180 KB |
Output is correct |
16 |
Correct |
8 ms |
4180 KB |
Output is correct |
17 |
Correct |
37 ms |
6520 KB |
Output is correct |
18 |
Correct |
39 ms |
6636 KB |
Output is correct |
19 |
Correct |
37 ms |
6700 KB |
Output is correct |
20 |
Correct |
37 ms |
6772 KB |
Output is correct |
21 |
Correct |
36 ms |
6908 KB |
Output is correct |
22 |
Correct |
39 ms |
6960 KB |
Output is correct |
23 |
Correct |
33 ms |
6620 KB |
Output is correct |
24 |
Correct |
34 ms |
6768 KB |
Output is correct |
25 |
Correct |
35 ms |
6924 KB |
Output is correct |
26 |
Correct |
32 ms |
6692 KB |
Output is correct |
27 |
Correct |
31 ms |
6672 KB |
Output is correct |
28 |
Correct |
33 ms |
6880 KB |
Output is correct |
29 |
Correct |
7 ms |
3796 KB |
Output is correct |
30 |
Correct |
7 ms |
4164 KB |
Output is correct |
31 |
Correct |
7 ms |
3964 KB |
Output is correct |
32 |
Correct |
8 ms |
4192 KB |
Output is correct |
33 |
Correct |
8 ms |
4192 KB |
Output is correct |
34 |
Correct |
7 ms |
4180 KB |
Output is correct |
35 |
Correct |
1 ms |
212 KB |
Output is correct |
36 |
Correct |
37 ms |
6244 KB |
Output is correct |
37 |
Correct |
40 ms |
6584 KB |
Output is correct |
38 |
Correct |
38 ms |
6752 KB |
Output is correct |
39 |
Correct |
36 ms |
7152 KB |
Output is correct |
40 |
Correct |
38 ms |
6944 KB |
Output is correct |
41 |
Correct |
8 ms |
4152 KB |
Output is correct |
42 |
Correct |
35 ms |
6724 KB |
Output is correct |
43 |
Correct |
36 ms |
6888 KB |
Output is correct |
44 |
Correct |
37 ms |
6908 KB |
Output is correct |
45 |
Correct |
33 ms |
6624 KB |
Output is correct |
46 |
Correct |
34 ms |
6900 KB |
Output is correct |
47 |
Correct |
33 ms |
6836 KB |
Output is correct |