# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
910907 | tnun | Digital Circuit (IOI22_circuit) | C++17 | 3045 ms | 10080 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 <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
int N,M;
vector<int> P;
vector<int> A;
ll int mod=1000002022;
vector<int> adj[200050];
ll int one[200050]={0};
ll int zer[200050]={0};
void dfs(){
for(int node=N+M-1;node>=0;node--){
if(node>=N){
if(A[node-N]==1){
one[node]=1;
zer[node]=0;
}else{
one[node]=0;
zer[node]=1;
}
continue;
}
ll int all=1;
for(int i=0;i<adj[node].size();i++){
all*=(one[adj[node][i]]+zer[adj[node][i]]);
all=all%mod;
}
for(int i=0;i<adj[node].size();i++){
one[node]+=(one[adj[node][i]])*all/(one[adj[node][i]]+zer[adj[node][i]]);
one[node]=one[node]%mod;
}
all=all*adj[node].size();
all=all%mod;
zer[node]=all-one[node];
}
}
int count_ways(int l,int r){
memset(one, 0, sizeof(one));
memset(zer, 0, sizeof(zer));
for(int i=l;i<=r;i++){
A[i-N]=(A[i-N]+1)%2;
}
// for(int i=0;i<A.size();i++){
// cout<<A[i]<<" ";
// }
// cout<<endl;
dfs();
// for(int i=0;i<N+M;i++){
// cout<<i<<" "<<one[i]<<" "<<zer[i]<<endl;
// }
return one[0];
}
void init(int n,int m, vector<int> p,vector<int> a){
N=n;
M=m;
for(int i=0;i<p.size();i++){
P.pb(p[i]);
}
for(int i=0;i<a.size();i++){
A.pb(a[i]);
}
for(int i=1;i<N+M;i++){
adj[P[i]].pb(i);
}
}
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... |