# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
786971 | thimote75 | 디지털 회로 (IOI22_circuit) | C++17 | 3048 ms | 1872 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>
#define num long long
using namespace std;
const int MOD = 1000002022;
using idata = vector<signed>;
using ndata = vector<num>;
ndata C;
ndata Gamma;
idata status;
idata target;
int N, M;
void init(int _N, int _M, idata P, idata A) {
N = _N; M = _M;
C .resize(N);
Gamma.resize(N + 1, 1);
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]] ++;
for (int i = N - 1; i >= 0; i --) Gamma[i] = (C[i] * Gamma[i + 1]) % MOD;
}
int count_ways(int L, int R) {
L -= N; R -= N;
for (int i = L; i <= R; i ++)
status [i] = 1 - status[i];
idata localC(N);
int size_last = 0;
num res = 0;
for (int i = 0; i < M; i ++) {
if (status[i] == 0) continue ;
localC[target[i]] ++ ;
}
bool canAdd = false;
for (int i = N - 1; i >= 0; i --) {
if (localC[i] == C[i]) {
if (i != 0) localC[i - 1] ++;
} else
canAdd = true;
if (canAdd) { res += localC[i] * Gamma[i + 1]; res %= MOD; }
}
if (!canAdd) return Gamma[0];
return res;
}
Compilation message (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... |