# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
790508 | 2023-07-22T18:11:53 Z | borisAngelov | Digital Circuit (IOI22_circuit) | C++17 | 3000 ms | 7572 KB |
#include "circuit.h" #include <bits/stdc++.h> using namespace std; const int maxn = 200005; const long long mod = 1e9 + 2022; int n, m; long long dp[maxn][2]; int color[maxn]; vector<int> tree[maxn]; void dfs(int node) { dp[node][0] = 0; dp[node][1] = 0; if (tree[node].empty()) { dp[node][color[node]] = 1; dp[node][1 - color[node]] = 0; return; } int l = tree[node][0]; int r = tree[node][1]; dfs(l); dfs(r); dp[node][0] = (dp[l][0] * dp[r][1]) % mod + (dp[l][1] * dp[r][0]) % mod + (2LL * dp[l][0] * dp[r][0]) % mod; dp[node][0] %= mod; dp[node][1] = (dp[l][0] * dp[r][1]) % mod + (dp[l][1] * dp[r][0]) % mod + (2LL * dp[l][1] * dp[r][1]) % mod; dp[node][1] %= mod; } void init(int N, int M, vector<int> P, vector<int> A) { n = N; m = M; for (int i = 1; i < P.size(); ++i) { tree[P[i] + 1].push_back(i + 1); } for (int i = n + 1; i <= n + m; ++i) { color[i] = A[i - n - 1]; } } int count_ways(int L, int R) { int l = ++L; int r = ++R; for (int i = l; i <= r; ++i) { color[i] = 1 - color[i]; } dfs(1); return dp[1][1]; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4944 KB | Output is correct |
2 | Correct | 3 ms | 5000 KB | Output is correct |
3 | Incorrect | 2 ms | 4944 KB | 1st lines differ - on the 1st token, expected: '509', found: '1' |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4944 KB | Output is correct |
2 | Correct | 2 ms | 4944 KB | Output is correct |
3 | Correct | 2 ms | 4944 KB | Output is correct |
4 | Correct | 2 ms | 4988 KB | Output is correct |
5 | Correct | 2 ms | 4944 KB | Output is correct |
6 | Correct | 3 ms | 5072 KB | Output is correct |
7 | Correct | 3 ms | 5072 KB | Output is correct |
8 | Correct | 3 ms | 5072 KB | Output is correct |
9 | Correct | 2 ms | 5072 KB | Output is correct |
10 | Correct | 3 ms | 5136 KB | Output is correct |
11 | Correct | 3 ms | 5072 KB | Output is correct |
12 | Correct | 3 ms | 5076 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4944 KB | Output is correct |
2 | Correct | 3 ms | 5000 KB | Output is correct |
3 | Incorrect | 2 ms | 4944 KB | 1st lines differ - on the 1st token, expected: '509', found: '1' |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3091 ms | 7572 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3091 ms | 7572 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4944 KB | Output is correct |
2 | Correct | 2 ms | 4944 KB | Output is correct |
3 | Correct | 2 ms | 4944 KB | Output is correct |
4 | Correct | 2 ms | 4988 KB | Output is correct |
5 | Correct | 2 ms | 4944 KB | Output is correct |
6 | Correct | 3 ms | 5072 KB | Output is correct |
7 | Correct | 3 ms | 5072 KB | Output is correct |
8 | Correct | 3 ms | 5072 KB | Output is correct |
9 | Correct | 2 ms | 5072 KB | Output is correct |
10 | Correct | 3 ms | 5136 KB | Output is correct |
11 | Correct | 3 ms | 5072 KB | Output is correct |
12 | Correct | 3 ms | 5076 KB | Output is correct |
13 | Execution timed out | 3091 ms | 7572 KB | Time limit exceeded |
14 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4944 KB | Output is correct |
2 | Correct | 3 ms | 5000 KB | Output is correct |
3 | Incorrect | 2 ms | 4944 KB | 1st lines differ - on the 1st token, expected: '509', found: '1' |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4944 KB | Output is correct |
2 | Correct | 3 ms | 5000 KB | Output is correct |
3 | Incorrect | 2 ms | 4944 KB | 1st lines differ - on the 1st token, expected: '509', found: '1' |
4 | Halted | 0 ms | 0 KB | - |