| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 787538 | thimote75 | Digital Circuit (IOI22_circuit) | C++17 | 3035 ms | 3364 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "circuit.h"
#include <bits/stdc++.h>
#define num long long
using namespace std;
const int MOD = 1000002022;
using idata = vector<int>;
using ndata = vector<num>;
using igrid = vector<idata>;
ndata C;
idata status;
idata target;
igrid roads;
int N, M;
void init(int _N, int _M, idata P, idata A) {
N = _N; M = _M;
C .resize(N);
roads.resize(N);
for (int i = 1; i < N + M; i ++)
roads[P[i]].push_back(i);
status = A;
target.resize(M);
for (int i = 0; i < M; i ++)
target[i] = P[i + N];
for (int i = 1; i < N + M; i ++) C[P[i]] ++;
}
pair<num, num> dfs (int node) {
if (node >= N)
return { 1 - status[node - N], status[node - N] };
ndata grid(C[node] + 1, 0);
grid[0] = 1;
for (int next : roads[node]) {
pair<num, num> res = dfs(next);
for (int i = grid.size() - 1; i >= 0; i --) {
if (i + 1 != grid.size()) {
grid[i + 1] += grid[i] * res.second;
grid[i + 1] %= MOD;
}
grid[i] *= res.first; grid[i] %= MOD;
}
}
pair<num, num> result = { 0, 0 };
for (int i = 1; i < grid.size(); i ++) {
result.second += i * grid[i];
result.second %= MOD;
result.first += (grid.size() - i) * grid[i - 1];
result.first %= MOD;
}
return result;
}
int count_ways(int L, int R) {
L -= N; R -= N;
for (int i = L; i <= R; i ++)
status [i] = 1 - status[i];
return dfs(0).second;
}
컴파일 시 표준 에러 (stderr) 메시지
| # | 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... | ||||
