Submission #835485

#TimeUsernameProblemLanguageResultExecution timeMemory
835485ma_moutahidDigital Circuit (IOI22_circuit)C++17
2 / 100
321 ms3408 KiB
#include <vector>
#include<bits/stdc++.h>
#include "circuit.h"
using namespace std;
#define vi vector<int>
#define vii vector<vi>
#define ll long long
#define vl vector<ll>
int n,m;
vii g;
vl ways;
int mod=1000002022;
vi state;
int total=0;
void init(int N, int M, std::vector<int> P, std::vector<int> A) {

  n=N;
  m=M;
  g.resize(N);
  ways.resize(M+N);
  for(int i=1   ;i<N+M;i++){
    g[P[i]].push_back(i);
  }
  state.resize(M);
  for(int i=N;i<N+M;i++){
    state[i-N]=A[i-N];
    total+=A[i-N];
  }
}

// void dfs(int node){
//   ll prod =1;
//   int add=0;
//   for(int child:g[node]){
//     if(child<n)dfs(child);
//     else {
//         add+=ways[child];
                  
//         continue;
//     }
//     prod*=ways[child]+1;
//     prod%=mod;
//   }
//   ways[node]=prod-1+add;
// }

int count_ways(int L, int R) {
  for(int i=L-n;i<=R-n;i++){
    total-=state[i];
    state[i]=!state[i];
    total+=state[i];
  }

  return total;
}
#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...