# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
804505 |
2023-08-03T09:16:11 Z |
SamAnd |
Mutating DNA (IOI21_dna) |
C++17 |
|
49 ms |
7548 KB |
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define m_p make_pair
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(),(x).end()
const int N = 100005;
int n;
int p[N][3][3];
void init(std::string a, std::string b) {
n = sz(a);
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < 3; ++j)
{
for (int k = 0; k < 3; ++k)
{
p[i + 1][j][k] = p[i][j][k];
}
}
int aa, bb;
if (a[i] == 'A')
aa = 0;
else if (a[i] == 'T')
aa = 1;
else
aa = 2;
if (b[i] == 'A')
bb = 0;
else if (b[i] == 'T')
bb = 1;
else
bb = 2;
++p[i + 1][aa][bb];
}
}
int get_distance(int l, int r) {
++l;
++r;
int q[3][3];
for (int j = 0; j < 3; ++j)
{
for (int k = 0; k < 3; ++k)
{
q[j][k] = p[r][j][k] - p[l - 1][j][k];
}
}
int ans = 0;
for (int j = 0; j < 3; ++j)
q[j][j] = 0;
for (int j = 0; j < 3; ++j)
{
for (int k = 0; k < 3; ++k)
{
int minu = min(q[j][k], q[k][j]);
ans += minu;
q[j][k] -= minu;
q[k][j] -= minu;
}
}
for (int j = 0; j < 3; ++j)
{
for (int k = 0; k < 3; ++k)
{
for (int i = 0; i < 3; ++i)
{
int minu = min(q[i][j], min(q[j][k], q[k][i]));
ans += minu * 2;
q[i][j] -= minu;
q[j][k] -= minu;
q[k][i] -= minu;
}
}
}
for (int j = 0; j < 3; ++j)
{
for (int k = 0; k < 3; ++k)
{
if (q[j][k])
return -1;
}
}
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
43 ms |
6984 KB |
Output is correct |
2 |
Correct |
36 ms |
7012 KB |
Output is correct |
3 |
Correct |
36 ms |
6556 KB |
Output is correct |
4 |
Correct |
37 ms |
6996 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
312 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
3 ms |
4564 KB |
Output is correct |
5 |
Correct |
3 ms |
4564 KB |
Output is correct |
6 |
Correct |
3 ms |
4564 KB |
Output is correct |
7 |
Correct |
3 ms |
4308 KB |
Output is correct |
8 |
Correct |
3 ms |
4564 KB |
Output is correct |
9 |
Correct |
3 ms |
4564 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
3 ms |
4564 KB |
Output is correct |
5 |
Correct |
3 ms |
4564 KB |
Output is correct |
6 |
Correct |
3 ms |
4564 KB |
Output is correct |
7 |
Correct |
3 ms |
4308 KB |
Output is correct |
8 |
Correct |
3 ms |
4564 KB |
Output is correct |
9 |
Correct |
3 ms |
4564 KB |
Output is correct |
10 |
Correct |
37 ms |
7000 KB |
Output is correct |
11 |
Correct |
39 ms |
7008 KB |
Output is correct |
12 |
Correct |
39 ms |
7092 KB |
Output is correct |
13 |
Correct |
38 ms |
7096 KB |
Output is correct |
14 |
Correct |
38 ms |
7348 KB |
Output is correct |
15 |
Correct |
49 ms |
7268 KB |
Output is correct |
16 |
Correct |
47 ms |
7008 KB |
Output is correct |
17 |
Correct |
37 ms |
7100 KB |
Output is correct |
18 |
Correct |
40 ms |
7316 KB |
Output is correct |
19 |
Correct |
35 ms |
6936 KB |
Output is correct |
20 |
Correct |
36 ms |
7164 KB |
Output is correct |
21 |
Correct |
36 ms |
7288 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
3 ms |
4564 KB |
Output is correct |
5 |
Correct |
3 ms |
4564 KB |
Output is correct |
6 |
Correct |
3 ms |
4564 KB |
Output is correct |
7 |
Correct |
3 ms |
4308 KB |
Output is correct |
8 |
Correct |
3 ms |
4564 KB |
Output is correct |
9 |
Correct |
3 ms |
4564 KB |
Output is correct |
10 |
Correct |
3 ms |
4180 KB |
Output is correct |
11 |
Correct |
3 ms |
4580 KB |
Output is correct |
12 |
Correct |
4 ms |
4280 KB |
Output is correct |
13 |
Correct |
3 ms |
4576 KB |
Output is correct |
14 |
Correct |
4 ms |
4536 KB |
Output is correct |
15 |
Correct |
3 ms |
4576 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
43 ms |
6984 KB |
Output is correct |
2 |
Correct |
36 ms |
7012 KB |
Output is correct |
3 |
Correct |
36 ms |
6556 KB |
Output is correct |
4 |
Correct |
37 ms |
6996 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
312 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
0 ms |
212 KB |
Output is correct |
9 |
Correct |
0 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
212 KB |
Output is correct |
11 |
Correct |
3 ms |
4564 KB |
Output is correct |
12 |
Correct |
3 ms |
4564 KB |
Output is correct |
13 |
Correct |
3 ms |
4564 KB |
Output is correct |
14 |
Correct |
3 ms |
4308 KB |
Output is correct |
15 |
Correct |
3 ms |
4564 KB |
Output is correct |
16 |
Correct |
3 ms |
4564 KB |
Output is correct |
17 |
Correct |
37 ms |
7000 KB |
Output is correct |
18 |
Correct |
39 ms |
7008 KB |
Output is correct |
19 |
Correct |
39 ms |
7092 KB |
Output is correct |
20 |
Correct |
38 ms |
7096 KB |
Output is correct |
21 |
Correct |
38 ms |
7348 KB |
Output is correct |
22 |
Correct |
49 ms |
7268 KB |
Output is correct |
23 |
Correct |
47 ms |
7008 KB |
Output is correct |
24 |
Correct |
37 ms |
7100 KB |
Output is correct |
25 |
Correct |
40 ms |
7316 KB |
Output is correct |
26 |
Correct |
35 ms |
6936 KB |
Output is correct |
27 |
Correct |
36 ms |
7164 KB |
Output is correct |
28 |
Correct |
36 ms |
7288 KB |
Output is correct |
29 |
Correct |
3 ms |
4180 KB |
Output is correct |
30 |
Correct |
3 ms |
4580 KB |
Output is correct |
31 |
Correct |
4 ms |
4280 KB |
Output is correct |
32 |
Correct |
3 ms |
4576 KB |
Output is correct |
33 |
Correct |
4 ms |
4536 KB |
Output is correct |
34 |
Correct |
3 ms |
4576 KB |
Output is correct |
35 |
Correct |
1 ms |
212 KB |
Output is correct |
36 |
Correct |
36 ms |
6604 KB |
Output is correct |
37 |
Correct |
38 ms |
7032 KB |
Output is correct |
38 |
Correct |
37 ms |
7144 KB |
Output is correct |
39 |
Correct |
38 ms |
7304 KB |
Output is correct |
40 |
Correct |
42 ms |
7548 KB |
Output is correct |
41 |
Correct |
3 ms |
4564 KB |
Output is correct |
42 |
Correct |
39 ms |
7028 KB |
Output is correct |
43 |
Correct |
37 ms |
7324 KB |
Output is correct |
44 |
Correct |
38 ms |
7300 KB |
Output is correct |
45 |
Correct |
37 ms |
7008 KB |
Output is correct |
46 |
Correct |
42 ms |
7392 KB |
Output is correct |
47 |
Correct |
36 ms |
7304 KB |
Output is correct |