# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
487111 | 2021-11-14T11:19:36 Z | Pulgster | DNA 돌연변이 (IOI21_dna) | C++17 | 55 ms | 7404 KB |
#include "dna.h" #include <bits/stdc++.h> using namespace std; #define g(x) "[" << #x << ": " << (x) << "] " // a[i][from][to]; const int maxn = 100005; int a[maxn][3][3]; int get(char &c){ if(c == 'A'){ return 0; } else if(c == 'T'){ return 1; } else{ return 2; } assert(false); } void init(string s, string b) { for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ a[0][i][j] = 0; } } for(int i=0;i<s.size();i++){ for(int j=0;j<3;j++){ for(int k=0;k<3;k++){ if(i == 0) break; a[i][j][k] = a[i-1][j][k]; } } a[i][get(s[i])][get(b[i])]++; } } int get_distance(int x, int y) { vector<vector<int>> cur(3, vector<int>(3)); for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ cur[i][j] += a[y][i][j]; if(x != 0){ cur[i][j] -= a[x-1][i][j]; } } } int two = 0; for(int i=0;i<3;i++){ int out = 0; int in = 0; for(int j=0;j<3;j++){ if(j == i){ continue; } out += cur[i][j]; in += cur[j][i]; } if(in != out){ return -1; } } for(int i=0;i<3;i++){ for(int j=i+1;j<3;j++){ int mn = min(cur[i][j], cur[j][i]); two += mn; cur[i][j] -= mn; cur[j][i] -= mn; } } return two + 2 * (max(cur[1][0], cur[0][1])); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 44 ms | 5632 KB | Output is correct |
2 | Correct | 42 ms | 5628 KB | Output is correct |
3 | Correct | 44 ms | 5352 KB | Output is correct |
4 | Correct | 41 ms | 7028 KB | Output is correct |
5 | Correct | 0 ms | 208 KB | Output is correct |
6 | Correct | 0 ms | 208 KB | Output is correct |
7 | Correct | 0 ms | 208 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 | 0 ms | 208 KB | Output is correct |
4 | Correct | 6 ms | 4560 KB | Output is correct |
5 | Correct | 4 ms | 4532 KB | Output is correct |
6 | Correct | 4 ms | 4560 KB | Output is correct |
7 | Correct | 5 ms | 4268 KB | Output is correct |
8 | Correct | 5 ms | 4560 KB | Output is correct |
9 | Correct | 4 ms | 4576 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 | 0 ms | 208 KB | Output is correct |
4 | Correct | 6 ms | 4560 KB | Output is correct |
5 | Correct | 4 ms | 4532 KB | Output is correct |
6 | Correct | 4 ms | 4560 KB | Output is correct |
7 | Correct | 5 ms | 4268 KB | Output is correct |
8 | Correct | 5 ms | 4560 KB | Output is correct |
9 | Correct | 4 ms | 4576 KB | Output is correct |
10 | Correct | 46 ms | 6932 KB | Output is correct |
11 | Correct | 43 ms | 7036 KB | Output is correct |
12 | Correct | 42 ms | 7012 KB | Output is correct |
13 | Correct | 45 ms | 7176 KB | Output is correct |
14 | Correct | 46 ms | 7392 KB | Output is correct |
15 | Correct | 43 ms | 7300 KB | Output is correct |
16 | Correct | 40 ms | 6980 KB | Output is correct |
17 | Correct | 41 ms | 7056 KB | Output is correct |
18 | Correct | 55 ms | 7288 KB | Output is correct |
19 | Correct | 39 ms | 6932 KB | Output is correct |
20 | Correct | 40 ms | 7192 KB | Output is correct |
21 | Correct | 40 ms | 7272 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 | 0 ms | 208 KB | Output is correct |
4 | Correct | 6 ms | 4560 KB | Output is correct |
5 | Correct | 4 ms | 4532 KB | Output is correct |
6 | Correct | 4 ms | 4560 KB | Output is correct |
7 | Correct | 5 ms | 4268 KB | Output is correct |
8 | Correct | 5 ms | 4560 KB | Output is correct |
9 | Correct | 4 ms | 4576 KB | Output is correct |
10 | Correct | 4 ms | 4176 KB | Output is correct |
11 | Correct | 4 ms | 4560 KB | Output is correct |
12 | Correct | 4 ms | 4304 KB | Output is correct |
13 | Correct | 4 ms | 4560 KB | Output is correct |
14 | Correct | 4 ms | 4560 KB | Output is correct |
15 | Correct | 4 ms | 4560 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 44 ms | 5632 KB | Output is correct |
2 | Correct | 42 ms | 5628 KB | Output is correct |
3 | Correct | 44 ms | 5352 KB | Output is correct |
4 | Correct | 41 ms | 7028 KB | Output is correct |
5 | Correct | 0 ms | 208 KB | Output is correct |
6 | Correct | 0 ms | 208 KB | Output is correct |
7 | Correct | 0 ms | 208 KB | Output is correct |
8 | Correct | 0 ms | 204 KB | Output is correct |
9 | Correct | 0 ms | 204 KB | Output is correct |
10 | Correct | 0 ms | 208 KB | Output is correct |
11 | Correct | 6 ms | 4560 KB | Output is correct |
12 | Correct | 4 ms | 4532 KB | Output is correct |
13 | Correct | 4 ms | 4560 KB | Output is correct |
14 | Correct | 5 ms | 4268 KB | Output is correct |
15 | Correct | 5 ms | 4560 KB | Output is correct |
16 | Correct | 4 ms | 4576 KB | Output is correct |
17 | Correct | 46 ms | 6932 KB | Output is correct |
18 | Correct | 43 ms | 7036 KB | Output is correct |
19 | Correct | 42 ms | 7012 KB | Output is correct |
20 | Correct | 45 ms | 7176 KB | Output is correct |
21 | Correct | 46 ms | 7392 KB | Output is correct |
22 | Correct | 43 ms | 7300 KB | Output is correct |
23 | Correct | 40 ms | 6980 KB | Output is correct |
24 | Correct | 41 ms | 7056 KB | Output is correct |
25 | Correct | 55 ms | 7288 KB | Output is correct |
26 | Correct | 39 ms | 6932 KB | Output is correct |
27 | Correct | 40 ms | 7192 KB | Output is correct |
28 | Correct | 40 ms | 7272 KB | Output is correct |
29 | Correct | 4 ms | 4176 KB | Output is correct |
30 | Correct | 4 ms | 4560 KB | Output is correct |
31 | Correct | 4 ms | 4304 KB | Output is correct |
32 | Correct | 4 ms | 4560 KB | Output is correct |
33 | Correct | 4 ms | 4560 KB | Output is correct |
34 | Correct | 4 ms | 4560 KB | Output is correct |
35 | Correct | 0 ms | 208 KB | Output is correct |
36 | Correct | 41 ms | 6620 KB | Output is correct |
37 | Correct | 42 ms | 7044 KB | Output is correct |
38 | Correct | 50 ms | 7056 KB | Output is correct |
39 | Correct | 41 ms | 7380 KB | Output is correct |
40 | Correct | 44 ms | 7308 KB | Output is correct |
41 | Correct | 3 ms | 4560 KB | Output is correct |
42 | Correct | 40 ms | 7040 KB | Output is correct |
43 | Correct | 47 ms | 7404 KB | Output is correct |
44 | Correct | 41 ms | 7280 KB | Output is correct |
45 | Correct | 41 ms | 7056 KB | Output is correct |
46 | Correct | 40 ms | 7312 KB | Output is correct |
47 | Correct | 40 ms | 7252 KB | Output is correct |