Submission #1068947

# Submission time Handle Problem Language Result Execution time Memory
1068947 2024-08-21T13:41:19 Z beaconmc Digital Circuit (IOI22_circuit) C++17
2 / 100
412 ms 7028 KB
#include "circuit.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define FOR(i,x,y) for(ll i=x; i<y; i++)
#define FORNEG(i,x,y) for(ll i=x; i>y; i--)

const ll maxn = 100005;

vector<ll> edges[maxn];
ll sub[maxn];
ll realsub[maxn];
ll par[maxn];
ll prod[maxn];




void dfs(ll a){
    if (edges[a].size()==0) sub[a] = 1;
    else sub[a] = 0;
    prod[a] = 1;

    for (auto&i : edges[a]){
        dfs(i);
        sub[a] += sub[i];
        prod[a] *= sub[i];
        prod[a] %= 1000002022;
    }
    if ( edges[a].size() != 0) prod[a] *= edges[a].size();
    prod[a] %= 1000002022;
}

ll cache[maxn];

ll dp(ll a){

    if (cache[a] != -1) return cache[a];
    if (a==0) return 1;


    cache[a] = dp(par[a]);
    for (auto&i : edges[par[a]]){
        if (i != a) cache[a] *= prod[i];
        cache[a] %= 1000002022;
    }



    return cache[a] %= 1000002022;
}
ll states[maxn];

ll ans = 0;

void init(int N, int M, std::vector<int> P, std::vector<int> A) {
    FOR(i,0,maxn) cache[i] = -1;
    par[0] = -1;
    FOR(i,1,N+M){
        edges[P[i]].push_back(i);
        par[i] = P[i];
    }
    dfs(0);

    FOR(i,0,M){
        states[N+i] = A[i];
        if (A[i]==1) ans += dp(N+i);
        ans %= 1000002022;
    }






}

int count_ways(int L, int R) {

    FOR(i,L,R+1){
        if (states[i]==1){
            states[i] = 0;
            ans -= dp(i);
        }else{
            states[i] = 1;
            ans += dp(i);
        }
        ans %= 1000002022;
    }
    return (ans+1000002022)%1000002022;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3928 KB Output is correct
2 Correct 2 ms 3416 KB Output is correct
3 Correct 5 ms 3416 KB Output is correct
4 Correct 4 ms 3416 KB Output is correct
5 Correct 6 ms 3416 KB Output is correct
6 Correct 5 ms 3928 KB Output is correct
7 Correct 6 ms 3416 KB Output is correct
8 Correct 4 ms 3416 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3928 KB Output is correct
2 Incorrect 2 ms 3416 KB 1st lines differ - on the 1st token, expected: '52130940', found: '337768080'
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3928 KB Output is correct
2 Correct 2 ms 3416 KB Output is correct
3 Correct 5 ms 3416 KB Output is correct
4 Correct 4 ms 3416 KB Output is correct
5 Correct 6 ms 3416 KB Output is correct
6 Correct 5 ms 3928 KB Output is correct
7 Correct 6 ms 3416 KB Output is correct
8 Correct 4 ms 3416 KB Output is correct
9 Correct 1 ms 3928 KB Output is correct
10 Incorrect 2 ms 3416 KB 1st lines differ - on the 1st token, expected: '52130940', found: '337768080'
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 412 ms 7028 KB 1st lines differ - on the 1st token, expected: '431985922', found: '234857270'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 412 ms 7028 KB 1st lines differ - on the 1st token, expected: '431985922', found: '234857270'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3928 KB Output is correct
2 Incorrect 2 ms 3416 KB 1st lines differ - on the 1st token, expected: '52130940', found: '337768080'
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3928 KB Output is correct
2 Correct 2 ms 3416 KB Output is correct
3 Correct 5 ms 3416 KB Output is correct
4 Correct 4 ms 3416 KB Output is correct
5 Correct 6 ms 3416 KB Output is correct
6 Correct 5 ms 3928 KB Output is correct
7 Correct 6 ms 3416 KB Output is correct
8 Correct 4 ms 3416 KB Output is correct
9 Correct 1 ms 3928 KB Output is correct
10 Incorrect 2 ms 3416 KB 1st lines differ - on the 1st token, expected: '52130940', found: '337768080'
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3928 KB Output is correct
2 Correct 2 ms 3416 KB Output is correct
3 Correct 5 ms 3416 KB Output is correct
4 Correct 4 ms 3416 KB Output is correct
5 Correct 6 ms 3416 KB Output is correct
6 Correct 5 ms 3928 KB Output is correct
7 Correct 6 ms 3416 KB Output is correct
8 Correct 4 ms 3416 KB Output is correct
9 Correct 1 ms 3928 KB Output is correct
10 Incorrect 2 ms 3416 KB 1st lines differ - on the 1st token, expected: '52130940', found: '337768080'
11 Halted 0 ms 0 KB -