제출 #1324577

#제출 시각아이디문제언어결과실행 시간메모리
1324577eri16디지털 회로 (IOI22_circuit)C++20
2 / 100
6 ms1232 KiB
#include <bits/stdc++.h>
//#include "circuit.h"

using namespace std;
using ll =long long;
vector <int> v;
vector <int> adj[1005];

int mod=1e9+2022;

int st;
    
void init(int N, int M, vector <int> P, vector <int> A){
    for (int i=1; i<N+M; i++){adj[P[i]].push_back(i);}
    v=A;
    st=N;
}

ll ans;

int dfs(int node){
    if (node<st){
        int sm=adj[node].size();
     
        for (auto child : adj[node]){
            if (dfs(child)==0){sm--;}
        }
        
        if (sm!=0){ans*=sm;ans=ans%mod;return 1;}
        else{return 0;}
    }
    
    else{return v[node-st];}
}

int count_ways(int L, int R){
    ans=1;
    for (int i=L; i<=R; i++){v[i-st]=1-v[i-st];}
    
    int cts = dfs(0);
    if (cts==0){return cts;}

    return (ans%mod);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...