# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
697765 | 2023-02-11T03:42:02 Z | hiikunZ | DNA 돌연변이 (IOI21_dna) | C++17 | 61 ms | 18092 KB |
#include<bits/stdc++.h> using namespace std; using ll = long long int; vector<vector<ll>> R(9,vector<ll>(200000,0)); void init(string a, string b){ ll N = (ll)a.size(); for(ll i = 0;i < N;i++){ ll p,q; if(a[i] == 'A') p = 0; if(a[i] == 'T') p = 1; if(a[i] == 'C') p = 2; if(b[i] == 'A') q = 0; if(b[i] == 'T') q = 1; if(b[i] == 'C') q = 2; for(ll j = 0;j < 9;j++) R[j][i + 1] = R[j][i]; R[p * 3 + q][i + 1]++; } } int get_distance(int x, int y){ y++; ll ans = 0; vector<int> A(9); for(ll j = 0;j < 9;j++) A[j] = R[j][y] - R[j][x]; for(ll i = 0;i < 3;i++){ A[i * 3 + i] = 0; for(ll j = i + 1;j < 3;j++){ ll k = min(A[i * 3 + j],A[j * 3 + i]); A[i * 3 + j] -= k; A[j * 3 + i] -= k; ans += k; } } vector<ll> C(3); for(ll i = 0;i < 3;i++){ for(ll j = 0;j < 3;j++){ C[i] += A[i * 3 + j]; C[j] -= A[i * 3 + j]; } } if(C[0] != 0 || C[1] != 0 || C[2] != 0) return -1; ll w = 0; for(int i = 0;i < 1;i++){ for(int j = 0;j < 3;j++){ for(int k = 0;k < 3;k++){ if(i != j && i != k && j != k && A[i * 3 + j] == A[j * 3 + k] && A[i * 3 + j] == A[k * 3 + i]){ w += A[i * 3 + j] * 2; } } } } return ans + w; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 49 ms | 16336 KB | Output is correct |
2 | Correct | 48 ms | 16340 KB | Output is correct |
3 | Correct | 53 ms | 16224 KB | Output is correct |
4 | Correct | 49 ms | 16348 KB | Output is correct |
5 | Correct | 7 ms | 15956 KB | Output is correct |
6 | Correct | 7 ms | 15956 KB | Output is correct |
7 | Correct | 7 ms | 15880 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 15860 KB | Output is correct |
2 | Correct | 7 ms | 15956 KB | Output is correct |
3 | Correct | 7 ms | 15956 KB | Output is correct |
4 | Correct | 13 ms | 15880 KB | Output is correct |
5 | Correct | 14 ms | 15956 KB | Output is correct |
6 | Correct | 12 ms | 15956 KB | Output is correct |
7 | Correct | 12 ms | 15880 KB | Output is correct |
8 | Correct | 13 ms | 15956 KB | Output is correct |
9 | Correct | 11 ms | 15956 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 15860 KB | Output is correct |
2 | Correct | 7 ms | 15956 KB | Output is correct |
3 | Correct | 7 ms | 15956 KB | Output is correct |
4 | Correct | 13 ms | 15880 KB | Output is correct |
5 | Correct | 14 ms | 15956 KB | Output is correct |
6 | Correct | 12 ms | 15956 KB | Output is correct |
7 | Correct | 12 ms | 15880 KB | Output is correct |
8 | Correct | 13 ms | 15956 KB | Output is correct |
9 | Correct | 11 ms | 15956 KB | Output is correct |
10 | Correct | 50 ms | 16344 KB | Output is correct |
11 | Correct | 54 ms | 16328 KB | Output is correct |
12 | Correct | 51 ms | 16560 KB | Output is correct |
13 | Correct | 50 ms | 16640 KB | Output is correct |
14 | Correct | 52 ms | 16668 KB | Output is correct |
15 | Correct | 52 ms | 16560 KB | Output is correct |
16 | Correct | 48 ms | 16628 KB | Output is correct |
17 | Correct | 46 ms | 16576 KB | Output is correct |
18 | Correct | 48 ms | 16680 KB | Output is correct |
19 | Correct | 41 ms | 16692 KB | Output is correct |
20 | Correct | 41 ms | 16708 KB | Output is correct |
21 | Correct | 42 ms | 16676 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 15860 KB | Output is correct |
2 | Correct | 7 ms | 15956 KB | Output is correct |
3 | Correct | 7 ms | 15956 KB | Output is correct |
4 | Correct | 13 ms | 15880 KB | Output is correct |
5 | Correct | 14 ms | 15956 KB | Output is correct |
6 | Correct | 12 ms | 15956 KB | Output is correct |
7 | Correct | 12 ms | 15880 KB | Output is correct |
8 | Correct | 13 ms | 15956 KB | Output is correct |
9 | Correct | 11 ms | 15956 KB | Output is correct |
10 | Correct | 12 ms | 15956 KB | Output is correct |
11 | Correct | 12 ms | 15956 KB | Output is correct |
12 | Correct | 12 ms | 15908 KB | Output is correct |
13 | Correct | 12 ms | 15872 KB | Output is correct |
14 | Correct | 12 ms | 15956 KB | Output is correct |
15 | Correct | 12 ms | 15956 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 49 ms | 16336 KB | Output is correct |
2 | Correct | 48 ms | 16340 KB | Output is correct |
3 | Correct | 53 ms | 16224 KB | Output is correct |
4 | Correct | 49 ms | 16348 KB | Output is correct |
5 | Correct | 7 ms | 15956 KB | Output is correct |
6 | Correct | 7 ms | 15956 KB | Output is correct |
7 | Correct | 7 ms | 15880 KB | Output is correct |
8 | Correct | 7 ms | 15860 KB | Output is correct |
9 | Correct | 7 ms | 15956 KB | Output is correct |
10 | Correct | 7 ms | 15956 KB | Output is correct |
11 | Correct | 13 ms | 15880 KB | Output is correct |
12 | Correct | 14 ms | 15956 KB | Output is correct |
13 | Correct | 12 ms | 15956 KB | Output is correct |
14 | Correct | 12 ms | 15880 KB | Output is correct |
15 | Correct | 13 ms | 15956 KB | Output is correct |
16 | Correct | 11 ms | 15956 KB | Output is correct |
17 | Correct | 50 ms | 16344 KB | Output is correct |
18 | Correct | 54 ms | 16328 KB | Output is correct |
19 | Correct | 51 ms | 16560 KB | Output is correct |
20 | Correct | 50 ms | 16640 KB | Output is correct |
21 | Correct | 52 ms | 16668 KB | Output is correct |
22 | Correct | 52 ms | 16560 KB | Output is correct |
23 | Correct | 48 ms | 16628 KB | Output is correct |
24 | Correct | 46 ms | 16576 KB | Output is correct |
25 | Correct | 48 ms | 16680 KB | Output is correct |
26 | Correct | 41 ms | 16692 KB | Output is correct |
27 | Correct | 41 ms | 16708 KB | Output is correct |
28 | Correct | 42 ms | 16676 KB | Output is correct |
29 | Correct | 12 ms | 15956 KB | Output is correct |
30 | Correct | 12 ms | 15956 KB | Output is correct |
31 | Correct | 12 ms | 15908 KB | Output is correct |
32 | Correct | 12 ms | 15872 KB | Output is correct |
33 | Correct | 12 ms | 15956 KB | Output is correct |
34 | Correct | 12 ms | 15956 KB | Output is correct |
35 | Correct | 7 ms | 15956 KB | Output is correct |
36 | Correct | 49 ms | 17580 KB | Output is correct |
37 | Correct | 61 ms | 17628 KB | Output is correct |
38 | Correct | 54 ms | 17956 KB | Output is correct |
39 | Correct | 54 ms | 18036 KB | Output is correct |
40 | Correct | 57 ms | 17968 KB | Output is correct |
41 | Correct | 12 ms | 15956 KB | Output is correct |
42 | Correct | 47 ms | 17928 KB | Output is correct |
43 | Correct | 47 ms | 17912 KB | Output is correct |
44 | Correct | 60 ms | 18092 KB | Output is correct |
45 | Correct | 44 ms | 17900 KB | Output is correct |
46 | Correct | 47 ms | 17992 KB | Output is correct |
47 | Correct | 43 ms | 17964 KB | Output is correct |