# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
610844 |
2022-07-28T16:03:12 Z |
Ozy |
Mutating DNA (IOI21_dna) |
C++17 |
|
47 ms |
10904 KB |
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;
#define lli long long int
#define debug(a) cout << #a << " = " << a << endl
#define debugsl(a) cout << #a << " = " << a << ", "
#define rep(i,a,b) for (int i = (a); i <= (b); i++)
#define repa(i,a,b) for (int i = (a); i >= (b); i--)
#define MAX 100000
lli acu[MAX+2][3][3];
lli act[3][3];
void init(std::string a, std::string b) {
lli n = a.size();
lli x,y;
rep(i,0,n-1) {
if (a[i] == 'A') x = 0;
else if (a[i] == 'T') x = 1;
else x = 2;
if (b[i] == 'A') y = 0;
else if (b[i] == 'T') y = 1;
else y = 2;
rep(e,0,2) rep(j,0,2) acu[i][e][j] = acu[i-1][e][j];
acu[i][x][y]++;
}
}
int get_distance(int x, int y) {
rep(i,0,2) rep(j,0,2) act[i][j] = acu[y][i][j];
if (x > 0) rep(i,0,2) rep(j,0,2) act[i][j] -= acu[x-1][i][j];
lli a,b,c,res = 0;
a = min(act[0][2], act[2][0]);
res += a;
act[0][2] -= a;
act[2][0] -= a;
b = min(act[0][1], act[1][0]);
res += b;
act[0][1] -= b;
act[1][0] -= b;
c = min(act[1][2], act[2][1]);
res += c;
act[1][2] -= c;
act[2][1] -= c;
if (act[0][2] == act[1][0] && act[1][0] == act[2][1]) {
res += act[0][2]*2;
if (act[2][0] == act[0][1] && act[0][1] == act[1][2]) {
res += act[2][0]*2;
return res;
}
}
return -1;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
36 ms |
10380 KB |
Output is correct |
2 |
Correct |
38 ms |
10504 KB |
Output is correct |
3 |
Correct |
34 ms |
9820 KB |
Output is correct |
4 |
Correct |
36 ms |
10584 KB |
Output is correct |
5 |
Correct |
0 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
308 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
6 ms |
7996 KB |
Output is correct |
5 |
Correct |
6 ms |
8020 KB |
Output is correct |
6 |
Correct |
6 ms |
8020 KB |
Output is correct |
7 |
Correct |
6 ms |
7508 KB |
Output is correct |
8 |
Correct |
6 ms |
8080 KB |
Output is correct |
9 |
Correct |
5 ms |
8020 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
308 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
6 ms |
7996 KB |
Output is correct |
5 |
Correct |
6 ms |
8020 KB |
Output is correct |
6 |
Correct |
6 ms |
8020 KB |
Output is correct |
7 |
Correct |
6 ms |
7508 KB |
Output is correct |
8 |
Correct |
6 ms |
8080 KB |
Output is correct |
9 |
Correct |
5 ms |
8020 KB |
Output is correct |
10 |
Correct |
37 ms |
10484 KB |
Output is correct |
11 |
Correct |
41 ms |
10504 KB |
Output is correct |
12 |
Correct |
38 ms |
10392 KB |
Output is correct |
13 |
Correct |
38 ms |
10516 KB |
Output is correct |
14 |
Correct |
39 ms |
10864 KB |
Output is correct |
15 |
Correct |
36 ms |
10780 KB |
Output is correct |
16 |
Correct |
35 ms |
10212 KB |
Output is correct |
17 |
Correct |
38 ms |
10528 KB |
Output is correct |
18 |
Correct |
36 ms |
10772 KB |
Output is correct |
19 |
Correct |
34 ms |
10216 KB |
Output is correct |
20 |
Correct |
33 ms |
10516 KB |
Output is correct |
21 |
Correct |
33 ms |
10868 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
308 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
6 ms |
7996 KB |
Output is correct |
5 |
Correct |
6 ms |
8020 KB |
Output is correct |
6 |
Correct |
6 ms |
8020 KB |
Output is correct |
7 |
Correct |
6 ms |
7508 KB |
Output is correct |
8 |
Correct |
6 ms |
8080 KB |
Output is correct |
9 |
Correct |
5 ms |
8020 KB |
Output is correct |
10 |
Correct |
5 ms |
7380 KB |
Output is correct |
11 |
Correct |
6 ms |
8020 KB |
Output is correct |
12 |
Correct |
5 ms |
7516 KB |
Output is correct |
13 |
Correct |
5 ms |
8020 KB |
Output is correct |
14 |
Correct |
5 ms |
8020 KB |
Output is correct |
15 |
Correct |
5 ms |
8116 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
36 ms |
10380 KB |
Output is correct |
2 |
Correct |
38 ms |
10504 KB |
Output is correct |
3 |
Correct |
34 ms |
9820 KB |
Output is correct |
4 |
Correct |
36 ms |
10584 KB |
Output is correct |
5 |
Correct |
0 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
308 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
212 KB |
Output is correct |
11 |
Correct |
6 ms |
7996 KB |
Output is correct |
12 |
Correct |
6 ms |
8020 KB |
Output is correct |
13 |
Correct |
6 ms |
8020 KB |
Output is correct |
14 |
Correct |
6 ms |
7508 KB |
Output is correct |
15 |
Correct |
6 ms |
8080 KB |
Output is correct |
16 |
Correct |
5 ms |
8020 KB |
Output is correct |
17 |
Correct |
37 ms |
10484 KB |
Output is correct |
18 |
Correct |
41 ms |
10504 KB |
Output is correct |
19 |
Correct |
38 ms |
10392 KB |
Output is correct |
20 |
Correct |
38 ms |
10516 KB |
Output is correct |
21 |
Correct |
39 ms |
10864 KB |
Output is correct |
22 |
Correct |
36 ms |
10780 KB |
Output is correct |
23 |
Correct |
35 ms |
10212 KB |
Output is correct |
24 |
Correct |
38 ms |
10528 KB |
Output is correct |
25 |
Correct |
36 ms |
10772 KB |
Output is correct |
26 |
Correct |
34 ms |
10216 KB |
Output is correct |
27 |
Correct |
33 ms |
10516 KB |
Output is correct |
28 |
Correct |
33 ms |
10868 KB |
Output is correct |
29 |
Correct |
5 ms |
7380 KB |
Output is correct |
30 |
Correct |
6 ms |
8020 KB |
Output is correct |
31 |
Correct |
5 ms |
7516 KB |
Output is correct |
32 |
Correct |
5 ms |
8020 KB |
Output is correct |
33 |
Correct |
5 ms |
8020 KB |
Output is correct |
34 |
Correct |
5 ms |
8116 KB |
Output is correct |
35 |
Correct |
0 ms |
212 KB |
Output is correct |
36 |
Correct |
38 ms |
9824 KB |
Output is correct |
37 |
Correct |
37 ms |
10508 KB |
Output is correct |
38 |
Correct |
38 ms |
10392 KB |
Output is correct |
39 |
Correct |
41 ms |
10872 KB |
Output is correct |
40 |
Correct |
36 ms |
10904 KB |
Output is correct |
41 |
Correct |
5 ms |
8024 KB |
Output is correct |
42 |
Correct |
34 ms |
10340 KB |
Output is correct |
43 |
Correct |
34 ms |
10804 KB |
Output is correct |
44 |
Correct |
47 ms |
10860 KB |
Output is correct |
45 |
Correct |
35 ms |
10328 KB |
Output is correct |
46 |
Correct |
32 ms |
10848 KB |
Output is correct |
47 |
Correct |
34 ms |
10824 KB |
Output is correct |