# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
628925 | imeimi2000 | Digital Circuit (IOI22_circuit) | C++17 | 1112 ms | 29588 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "circuit.h"
#include <bits/stdc++.h>
using namespace std;
const int mod = 1000002022;
int n, m;
vector<int> E[200005];
int S[200005], C[200005];
void dfs1(int x) {
S[x] = max(1, int(E[x].size()));
for (int i : E[x]) {
dfs1(i);
S[x] = 1ll * S[x] * S[i] % mod;
}
}
void dfs2(int x) {
// printf("S[%d] = %d, C[%d] = %d\n", x, S[x], x, C[x]);
vector<int> R(E[x].size());
R.push_back(1);
for (int i = E[x].size(); i--; ) {
R[i] = 1ll * R[i + 1] * S[E[x][i]] % mod;
}
int L = 1;
for (int i = 0; i < int(E[x].size()); ++i) {
C[E[x][i]] = 1ll * L * R[i + 1] % mod * C[x] % mod;
dfs2(E[x][i]);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |