# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
58630 | 2018-07-18T14:05:38 Z | patrikpavic2 | Ili (COI17_ili) | C++17 | 935 ms | 2708 KB |
#include <algorithm> #include <cstdio> #include <cstring> using namespace std; const int N = 2e4 + 500; int n, m; int zn[N], op1[N],op2[N], skup[N], pod[N], perm[N], cnt[N]; char c; void dfs(int x){ if(skup[x]) return; skup[x] = 1; if(x < n) { return; } dfs(op1[x]); dfs(op2[x]); } bool cmp(const int &A, const int &B){ return cnt[A] < cnt[B]; } int main(){ scanf("%d%d", &n, &m); for(int i = 0;i<n;i++) zn[i] = 2; for(int i = n;i<n + m;i++){ scanf(" %c", &c); if(c == '?') zn[i] = 2; else zn[i] = c - '0'; } for(int i = n;i<n + m;i++){ char c1, c2; scanf(" %c%d %c%d", &c1, &op1[i], &c2, &op2[i]); op1[i]--,op2[i]--; if(c1 == 'c') op1[i] += n; if(c2 == 'c') op2[i] += n; if(zn[i] != 0) continue; memset(skup, 0 ,sizeof(skup)); dfs(i); for(int j = 0;j<n;j++) if(skup[j]) zn[j] = 0; } for(int i = n;i<n + m;i++){ if(zn[i] != 2) continue; memset(skup, 0 ,sizeof(skup)); dfs(i); zn[i] = 0; for(int j = 0;j<n;j++){ if(skup[j] && zn[j] != 0) zn[i] = 2; } } for(int i = n;i<n + m;i++){ if(zn[i] != 2) continue; memset(skup, 0, sizeof(skup)); memset(pod, 0, sizeof(pod)); dfs(i); for(int i = 0;i<n;i++) if(skup[i] || !zn[i]) pod[i] = 1; for(int j = n;j<n + m;j++){ if(pod[op1[j]] && pod[op2[j]]) pod[j] = 1; } for(int j = n;j<n + m;j++){ if(pod[j] && zn[j] == 1) zn[i] = 1; } } for(int i = n;i<n + m;i++){ if(zn[i] == 2)printf("?"); else printf("%c", '0' + zn[i]); } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 504 KB | Output is correct |
2 | Correct | 2 ms | 616 KB | Output is correct |
3 | Correct | 2 ms | 616 KB | Output is correct |
4 | Correct | 3 ms | 672 KB | Output is correct |
5 | Correct | 3 ms | 672 KB | Output is correct |
6 | Correct | 3 ms | 672 KB | Output is correct |
7 | Correct | 3 ms | 672 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 504 KB | Output is correct |
2 | Correct | 2 ms | 616 KB | Output is correct |
3 | Correct | 2 ms | 616 KB | Output is correct |
4 | Correct | 3 ms | 672 KB | Output is correct |
5 | Correct | 3 ms | 672 KB | Output is correct |
6 | Correct | 3 ms | 672 KB | Output is correct |
7 | Correct | 3 ms | 672 KB | Output is correct |
8 | Correct | 8 ms | 672 KB | Output is correct |
9 | Correct | 8 ms | 680 KB | Output is correct |
10 | Correct | 7 ms | 724 KB | Output is correct |
11 | Correct | 9 ms | 724 KB | Output is correct |
12 | Correct | 6 ms | 724 KB | Output is correct |
13 | Correct | 7 ms | 724 KB | Output is correct |
14 | Correct | 8 ms | 724 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 504 KB | Output is correct |
2 | Correct | 2 ms | 616 KB | Output is correct |
3 | Correct | 2 ms | 616 KB | Output is correct |
4 | Correct | 3 ms | 672 KB | Output is correct |
5 | Correct | 3 ms | 672 KB | Output is correct |
6 | Correct | 3 ms | 672 KB | Output is correct |
7 | Correct | 3 ms | 672 KB | Output is correct |
8 | Correct | 8 ms | 672 KB | Output is correct |
9 | Correct | 8 ms | 680 KB | Output is correct |
10 | Correct | 7 ms | 724 KB | Output is correct |
11 | Correct | 9 ms | 724 KB | Output is correct |
12 | Correct | 6 ms | 724 KB | Output is correct |
13 | Correct | 7 ms | 724 KB | Output is correct |
14 | Correct | 8 ms | 724 KB | Output is correct |
15 | Correct | 281 ms | 724 KB | Output is correct |
16 | Correct | 543 ms | 852 KB | Output is correct |
17 | Correct | 622 ms | 960 KB | Output is correct |
18 | Correct | 603 ms | 980 KB | Output is correct |
19 | Correct | 484 ms | 1092 KB | Output is correct |
20 | Correct | 935 ms | 1212 KB | Output is correct |
21 | Correct | 791 ms | 1384 KB | Output is correct |
22 | Correct | 422 ms | 1572 KB | Output is correct |
23 | Correct | 395 ms | 1572 KB | Output is correct |
24 | Correct | 309 ms | 1736 KB | Output is correct |
25 | Correct | 426 ms | 1948 KB | Output is correct |
26 | Correct | 403 ms | 1964 KB | Output is correct |
27 | Correct | 410 ms | 2128 KB | Output is correct |
28 | Correct | 437 ms | 2292 KB | Output is correct |
29 | Correct | 428 ms | 2468 KB | Output is correct |
30 | Correct | 392 ms | 2580 KB | Output is correct |
31 | Correct | 389 ms | 2684 KB | Output is correct |
32 | Correct | 397 ms | 2708 KB | Output is correct |