Submission #785872

# Submission time Handle Problem Language Result Execution time Memory
785872 2023-07-17T17:28:09 Z Andrey Digital Circuit (IOI22_circuit) C++17
4 / 100
847 ms 13548 KB
#include "circuit.h"
#include<bits/stdc++.h>
using namespace std;

vector<long long> dp(300001);
vector<long long> bruh(300001);
vector<long long> br(300001);
vector<long long> f(300001);
long long p2[300001];
long long n,m;
const long long MOD = 1e9+2022;

void upd(long long l, long long r, long long x, long long nl, long long nr) {
    if(l == nl && r == nr) {
        f[x]++;
        return;
    }
    long long m = (nl+nr)/2;
    if(r <= m) {
        upd(l,r,x*2+1,nl,m);
    }
    else if(l > m) {
        upd(l,r,x*2+2,m+1,nr);
    }
    else {
        upd(l,m,x*2+1,nl,m);
        upd(m+1,r,x*2+2,m+1,nr);
    }
    long long a = dp[x*2+1],b = dp[x*2+2];
    if(f[x*2+1]%2) {
        a = (p2[br[x*2+1]]-a+MOD)%MOD;
    }
    if(f[x*2+2]%2) {
        b = (p2[br[x*2+2]]-b+MOD)%MOD;
    }
    dp[x] = (p2[br[x*2+1]]*(a+b))%MOD;
}

void build(long long x) {
    if(x >= n) {
        dp[x] = bruh[x];
        br[x] = 0;
        return;
    }
    build(x*2+1);
    build(x*2+2);
    dp[x] = (p2[br[x*2+1]]*(dp[x*2+1]+dp[x*2+2]))%MOD;
    br[x] = br[x*2+1]*2+1;
}

void init(int N, int M, vector<int> p, vector<int> a) {
    p2[0] = 1;
    for(int i = 1; i < 300001; i++) {
        p2[i] = (p2[i-1]*2)%MOD;
    }
    n = N;
    m = M;
    for(int i = n; i < n+a.size(); i++) {
        bruh[i] = a[i-n];
    }
    build(0);
}

int count_ways(int l, int r) {
    upd(l-n,r-n,0,0,n);
    return dp[0];
}

Compilation message

circuit.cpp: In function 'void init(int, int, std::vector<int>, std::vector<int>)':
circuit.cpp:58:22: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
   58 |     for(int i = n; i < n+a.size(); i++) {
      |                    ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 12048 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 11984 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 12048 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 472 ms 12784 KB Output is correct
2 Correct 770 ms 13528 KB Output is correct
3 Correct 798 ms 13520 KB Output is correct
4 Correct 577 ms 13532 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 472 ms 12784 KB Output is correct
2 Correct 770 ms 13528 KB Output is correct
3 Correct 798 ms 13520 KB Output is correct
4 Correct 577 ms 13532 KB Output is correct
5 Correct 614 ms 12752 KB Output is correct
6 Correct 779 ms 13548 KB Output is correct
7 Correct 847 ms 13536 KB Output is correct
8 Incorrect 794 ms 13544 KB 27th lines differ - on the 1st token, expected: '46946168', found: '120494530'
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 11984 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 12048 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 12048 KB 3rd lines differ - on the 1st token, expected: '0', found: '2'
2 Halted 0 ms 0 KB -