답안 #824324

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
824324 2023-08-14T02:32:10 Z vjudge1 디지털 회로 (IOI22_circuit) C++17
52 / 100
802 ms 14976 KB
#include "circuit.h"
#include<bits/stdc++.h>
using namespace std;
long long tm = 1, l[800100], r[800100], v[800100], cont[800100], lz[800100], mod = 1000002022, po[200100], dep[200100], st[200100], nn;
void pd(int n) {
  if(lz[n]){
    v[n]=cont[n]-v[n];
    lz[n]=0;
    if(l[n]!=r[n])
      lz[n*2]^=1,lz[n*2+1]^=1;
  }
}
void build(int i, int L, int R) {
  l[i] = L;
  r[i] = R;
  if(L==R) {
    cont[i] = po[nn-dep[L+nn]];
    v[i] = st[L]*cont[i];
  } else {
    build(i*2,L,L+R>>1);
    build(i*2+1,L+R+2>>1, R);
    cont[i] = cont[i*2]+cont[i*2+1];
    v[i] = v[i*2]+v[i*2+1];
  }
}
void update(int i, int tl, int tr) {
  if(tl<=l[i]&&r[i]<=tr) 
    lz[i]^=1, tr=-1;
  pd(i);
  if(l[i]>tr||tl>r[i])
    return;
  update(i*2,tl,tr);
  update(i*2+1,tl,tr);
  v[i] = v[i*2]+v[i*2+1];
}
void init(int N, int M, vector<int> P, vector<int> A) {
  nn=N;
  for(int i = 0; i < M; i++)
    st[i] = A[i];
  for(int i = 1; i < N+M; i++)
    dep[i] = 1+dep[P[i]];
  po[0] = 1;
  for(int i = 1; i <= N; i++)
    po[i] = po[i-1]*2%mod;
  build(1,0,M-1);
}
int count_ways(int L, int R) {
  update(1,L-nn,R-nn);
  return v[1]%mod;
}

Compilation message

circuit.cpp: In function 'void build(int, int, int)':
circuit.cpp:20:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   20 |     build(i*2,L,L+R>>1);
      |                 ~^~
circuit.cpp:21:20: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   21 |     build(i*2+1,L+R+2>>1, R);
      |                 ~~~^~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 336 KB Output is correct
2 Correct 0 ms 336 KB Output is correct
3 Correct 1 ms 464 KB Output is correct
4 Correct 1 ms 464 KB Output is correct
5 Correct 0 ms 464 KB Output is correct
6 Correct 1 ms 464 KB Output is correct
7 Correct 1 ms 464 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 336 KB Output is correct
2 Correct 1 ms 280 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 464 KB Output is correct
7 Correct 1 ms 464 KB Output is correct
8 Correct 1 ms 464 KB Output is correct
9 Correct 1 ms 428 KB Output is correct
10 Correct 1 ms 464 KB Output is correct
11 Correct 1 ms 464 KB Output is correct
12 Correct 1 ms 464 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 336 KB Output is correct
2 Correct 0 ms 336 KB Output is correct
3 Correct 1 ms 464 KB Output is correct
4 Correct 1 ms 464 KB Output is correct
5 Correct 0 ms 464 KB Output is correct
6 Correct 1 ms 464 KB Output is correct
7 Correct 1 ms 464 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 0 ms 336 KB Output is correct
10 Correct 1 ms 280 KB Output is correct
11 Correct 1 ms 336 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 1 ms 336 KB Output is correct
14 Correct 1 ms 464 KB Output is correct
15 Correct 1 ms 464 KB Output is correct
16 Correct 1 ms 464 KB Output is correct
17 Correct 1 ms 428 KB Output is correct
18 Correct 1 ms 464 KB Output is correct
19 Correct 1 ms 464 KB Output is correct
20 Correct 1 ms 464 KB Output is correct
21 Incorrect 1 ms 464 KB 1st lines differ - on the 1st token, expected: '759476520', found: '833967706'
22 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 380 ms 4148 KB Output is correct
2 Correct 545 ms 7976 KB Output is correct
3 Correct 655 ms 7992 KB Output is correct
4 Correct 665 ms 7992 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 380 ms 4148 KB Output is correct
2 Correct 545 ms 7976 KB Output is correct
3 Correct 655 ms 7992 KB Output is correct
4 Correct 665 ms 7992 KB Output is correct
5 Correct 462 ms 4328 KB Output is correct
6 Correct 543 ms 8304 KB Output is correct
7 Correct 672 ms 8300 KB Output is correct
8 Correct 597 ms 7976 KB Output is correct
9 Correct 286 ms 560 KB Output is correct
10 Correct 497 ms 848 KB Output is correct
11 Correct 590 ms 808 KB Output is correct
12 Correct 563 ms 812 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 336 KB Output is correct
2 Correct 1 ms 280 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 336 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 464 KB Output is correct
7 Correct 1 ms 464 KB Output is correct
8 Correct 1 ms 464 KB Output is correct
9 Correct 1 ms 428 KB Output is correct
10 Correct 1 ms 464 KB Output is correct
11 Correct 1 ms 464 KB Output is correct
12 Correct 1 ms 464 KB Output is correct
13 Correct 380 ms 4148 KB Output is correct
14 Correct 545 ms 7976 KB Output is correct
15 Correct 655 ms 7992 KB Output is correct
16 Correct 665 ms 7992 KB Output is correct
17 Correct 462 ms 4328 KB Output is correct
18 Correct 543 ms 8304 KB Output is correct
19 Correct 672 ms 8300 KB Output is correct
20 Correct 597 ms 7976 KB Output is correct
21 Correct 286 ms 560 KB Output is correct
22 Correct 497 ms 848 KB Output is correct
23 Correct 590 ms 808 KB Output is correct
24 Correct 563 ms 812 KB Output is correct
25 Correct 705 ms 14836 KB Output is correct
26 Correct 684 ms 14976 KB Output is correct
27 Correct 802 ms 14912 KB Output is correct
28 Correct 513 ms 13904 KB Output is correct
29 Correct 790 ms 14912 KB Output is correct
30 Correct 687 ms 13984 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 336 KB Output is correct
2 Correct 0 ms 336 KB Output is correct
3 Correct 1 ms 464 KB Output is correct
4 Correct 1 ms 464 KB Output is correct
5 Correct 0 ms 464 KB Output is correct
6 Correct 1 ms 464 KB Output is correct
7 Correct 1 ms 464 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 0 ms 336 KB Output is correct
10 Correct 1 ms 280 KB Output is correct
11 Correct 1 ms 336 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 1 ms 336 KB Output is correct
14 Correct 1 ms 464 KB Output is correct
15 Correct 1 ms 464 KB Output is correct
16 Correct 1 ms 464 KB Output is correct
17 Correct 1 ms 428 KB Output is correct
18 Correct 1 ms 464 KB Output is correct
19 Correct 1 ms 464 KB Output is correct
20 Correct 1 ms 464 KB Output is correct
21 Incorrect 1 ms 464 KB 1st lines differ - on the 1st token, expected: '759476520', found: '833967706'
22 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 336 KB Output is correct
2 Correct 0 ms 336 KB Output is correct
3 Correct 1 ms 464 KB Output is correct
4 Correct 1 ms 464 KB Output is correct
5 Correct 0 ms 464 KB Output is correct
6 Correct 1 ms 464 KB Output is correct
7 Correct 1 ms 464 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 0 ms 336 KB Output is correct
10 Correct 1 ms 280 KB Output is correct
11 Correct 1 ms 336 KB Output is correct
12 Correct 1 ms 336 KB Output is correct
13 Correct 1 ms 336 KB Output is correct
14 Correct 1 ms 464 KB Output is correct
15 Correct 1 ms 464 KB Output is correct
16 Correct 1 ms 464 KB Output is correct
17 Correct 1 ms 428 KB Output is correct
18 Correct 1 ms 464 KB Output is correct
19 Correct 1 ms 464 KB Output is correct
20 Correct 1 ms 464 KB Output is correct
21 Incorrect 1 ms 464 KB 1st lines differ - on the 1st token, expected: '759476520', found: '833967706'
22 Halted 0 ms 0 KB -