# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
544055 |
2022-03-31T22:00:20 Z |
Leo121 |
Mutating DNA (IOI21_dna) |
C++17 |
|
43 ms |
8552 KB |
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;
const int lim = 1e5;
int pfa[2][lim + 2];
int pfc[2][lim + 2];
int pft[2][lim + 2];
int adif[2][lim + 2];
int cdif[2][lim + 2];
int tdif[2][lim + 2];
void init(std::string a, std::string b) {
int longitud = a.size();
for(int i = 0; i < longitud; ++ i){
if(a[i] == 'A'){
pfa[0][i + 1] ++;
if(b[i] == 'C'){
adif[0][i + 1] ++;
}
else if(b[i] == 'T'){
adif[1][i + 1] ++;
}
}
else if(a[i] == 'C'){
pfc[0][i + 1] ++;
if(b[i] == 'A'){
cdif[0][i + 1] ++;
}
else if(b[i] == 'T'){
cdif[1][i + 1] ++;
}
}
else{
pft[0][i + 1] ++;
if(b[i] == 'A'){
tdif[0][i + 1] ++;
}
else if(b[i] == 'C'){
tdif[1][i + 1] ++;
}
}
if(b[i] == 'A'){
pfa[1][i + 1] ++;
}
else if(b[i] == 'C'){
pfc[1][i + 1] ++;
}
else{
pft[1][i + 1] ++;
}
for(int j = 0; j <= 1; ++ j){
pfa[j][i + 1] += pfa[j][i];
pfc[j][i + 1] += pfc[j][i];
pft[j][i + 1] += pft[j][i];
adif[j][i + 1] += adif[j][i];
cdif[j][i + 1] += cdif[j][i];
tdif[j][i + 1] += tdif[j][i];
}
}
}
int get_distance(int x, int y) {
x ++;
y ++;
if((pfa[0][y] - pfa[0][x - 1] != pfa[1][y] - pfa[1][x - 1]) || (pfc[0][y] - pfc[0][x - 1] != pfc[1][y] - pfc[1][x - 1]) || (pft[0][y] - pft[0][x - 1] != pft[1][y] - pft[1][x - 1])){
return -1;
}
int res = 0;
res += min(adif[0][y] - adif[0][x - 1], cdif[0][y] - cdif[0][x - 1]);
res += min(adif[1][y] - adif[1][x - 1], tdif[0][y] - tdif[0][x - 1]);
res += min(cdif[1][y] - cdif[1][x - 1], tdif[1][y] - tdif[1][x - 1]);
res += (max(adif[0][y] - adif[0][x - 1], cdif[0][y] - cdif[0][x - 1]) - min(adif[0][y] - adif[0][x - 1], cdif[0][y] - cdif[0][x - 1])) * 2;
return res;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
33 ms |
8168 KB |
Output is correct |
2 |
Correct |
33 ms |
8176 KB |
Output is correct |
3 |
Correct |
33 ms |
7772 KB |
Output is correct |
4 |
Correct |
33 ms |
8184 KB |
Output is correct |
5 |
Correct |
0 ms |
340 KB |
Output is correct |
6 |
Correct |
1 ms |
340 KB |
Output is correct |
7 |
Correct |
1 ms |
308 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
1 ms |
340 KB |
Output is correct |
3 |
Correct |
1 ms |
340 KB |
Output is correct |
4 |
Correct |
5 ms |
5684 KB |
Output is correct |
5 |
Correct |
6 ms |
5716 KB |
Output is correct |
6 |
Correct |
5 ms |
5716 KB |
Output is correct |
7 |
Correct |
5 ms |
5332 KB |
Output is correct |
8 |
Correct |
6 ms |
5736 KB |
Output is correct |
9 |
Correct |
6 ms |
5696 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
1 ms |
340 KB |
Output is correct |
3 |
Correct |
1 ms |
340 KB |
Output is correct |
4 |
Correct |
5 ms |
5684 KB |
Output is correct |
5 |
Correct |
6 ms |
5716 KB |
Output is correct |
6 |
Correct |
5 ms |
5716 KB |
Output is correct |
7 |
Correct |
5 ms |
5332 KB |
Output is correct |
8 |
Correct |
6 ms |
5736 KB |
Output is correct |
9 |
Correct |
6 ms |
5696 KB |
Output is correct |
10 |
Correct |
35 ms |
8204 KB |
Output is correct |
11 |
Correct |
33 ms |
8180 KB |
Output is correct |
12 |
Correct |
33 ms |
8168 KB |
Output is correct |
13 |
Correct |
38 ms |
8348 KB |
Output is correct |
14 |
Correct |
35 ms |
8528 KB |
Output is correct |
15 |
Correct |
33 ms |
8436 KB |
Output is correct |
16 |
Correct |
31 ms |
8160 KB |
Output is correct |
17 |
Correct |
31 ms |
8308 KB |
Output is correct |
18 |
Correct |
33 ms |
8440 KB |
Output is correct |
19 |
Correct |
30 ms |
8120 KB |
Output is correct |
20 |
Correct |
29 ms |
8268 KB |
Output is correct |
21 |
Correct |
32 ms |
8420 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
1 ms |
340 KB |
Output is correct |
3 |
Correct |
1 ms |
340 KB |
Output is correct |
4 |
Correct |
5 ms |
5684 KB |
Output is correct |
5 |
Correct |
6 ms |
5716 KB |
Output is correct |
6 |
Correct |
5 ms |
5716 KB |
Output is correct |
7 |
Correct |
5 ms |
5332 KB |
Output is correct |
8 |
Correct |
6 ms |
5736 KB |
Output is correct |
9 |
Correct |
6 ms |
5696 KB |
Output is correct |
10 |
Correct |
6 ms |
5332 KB |
Output is correct |
11 |
Correct |
7 ms |
5712 KB |
Output is correct |
12 |
Correct |
5 ms |
5460 KB |
Output is correct |
13 |
Correct |
6 ms |
5696 KB |
Output is correct |
14 |
Correct |
6 ms |
5696 KB |
Output is correct |
15 |
Correct |
5 ms |
5716 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
33 ms |
8168 KB |
Output is correct |
2 |
Correct |
33 ms |
8176 KB |
Output is correct |
3 |
Correct |
33 ms |
7772 KB |
Output is correct |
4 |
Correct |
33 ms |
8184 KB |
Output is correct |
5 |
Correct |
0 ms |
340 KB |
Output is correct |
6 |
Correct |
1 ms |
340 KB |
Output is correct |
7 |
Correct |
1 ms |
308 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
340 KB |
Output is correct |
10 |
Correct |
1 ms |
340 KB |
Output is correct |
11 |
Correct |
5 ms |
5684 KB |
Output is correct |
12 |
Correct |
6 ms |
5716 KB |
Output is correct |
13 |
Correct |
5 ms |
5716 KB |
Output is correct |
14 |
Correct |
5 ms |
5332 KB |
Output is correct |
15 |
Correct |
6 ms |
5736 KB |
Output is correct |
16 |
Correct |
6 ms |
5696 KB |
Output is correct |
17 |
Correct |
35 ms |
8204 KB |
Output is correct |
18 |
Correct |
33 ms |
8180 KB |
Output is correct |
19 |
Correct |
33 ms |
8168 KB |
Output is correct |
20 |
Correct |
38 ms |
8348 KB |
Output is correct |
21 |
Correct |
35 ms |
8528 KB |
Output is correct |
22 |
Correct |
33 ms |
8436 KB |
Output is correct |
23 |
Correct |
31 ms |
8160 KB |
Output is correct |
24 |
Correct |
31 ms |
8308 KB |
Output is correct |
25 |
Correct |
33 ms |
8440 KB |
Output is correct |
26 |
Correct |
30 ms |
8120 KB |
Output is correct |
27 |
Correct |
29 ms |
8268 KB |
Output is correct |
28 |
Correct |
32 ms |
8420 KB |
Output is correct |
29 |
Correct |
6 ms |
5332 KB |
Output is correct |
30 |
Correct |
7 ms |
5712 KB |
Output is correct |
31 |
Correct |
5 ms |
5460 KB |
Output is correct |
32 |
Correct |
6 ms |
5696 KB |
Output is correct |
33 |
Correct |
6 ms |
5696 KB |
Output is correct |
34 |
Correct |
5 ms |
5716 KB |
Output is correct |
35 |
Correct |
1 ms |
304 KB |
Output is correct |
36 |
Correct |
43 ms |
7724 KB |
Output is correct |
37 |
Correct |
35 ms |
8184 KB |
Output is correct |
38 |
Correct |
34 ms |
8212 KB |
Output is correct |
39 |
Correct |
34 ms |
8552 KB |
Output is correct |
40 |
Correct |
34 ms |
8520 KB |
Output is correct |
41 |
Correct |
5 ms |
5716 KB |
Output is correct |
42 |
Correct |
33 ms |
8196 KB |
Output is correct |
43 |
Correct |
32 ms |
8436 KB |
Output is correct |
44 |
Correct |
33 ms |
8440 KB |
Output is correct |
45 |
Correct |
30 ms |
8172 KB |
Output is correct |
46 |
Correct |
30 ms |
8456 KB |
Output is correct |
47 |
Correct |
30 ms |
8456 KB |
Output is correct |