만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

정수

시간 제한2초메모리 제한1024 MB

요약
정수 x에 a·2^b를 더하는 연산과 x의 k번째 이진 자릿수를 묻는 연산을 순서대로 처리합니다.
난이도

어려움10점 중 8점

유형
비트 연산, 세그먼트 트리, 구현
정답자
아직 제출이 없습니다

문제

정수 xx가 있으며, 처음에는 00이다.

nn개의 연산이 주어진다. 각 연산은 다음 두 종류 중 하나이다.

  • 1 a b: xx에 a⋅2ba \cdot 2^b를 더한다. 여기서 aa는 음수일 수 있는 정수이고, bb는 음이 아닌 정수이다.
  • 2 k: xx를 이진수로 나타냈을 때, 가중치 2k2^k의 자리에 있는 숫자를 구한다.

모든 시점에서 x≥0x \geq 0이 보장된다.

입력

첫째 줄에 네 정수 nn, t1t_1, t2t_2, t3t_3가 주어진다.

이어지는 nn개의 줄에 연산이 하나씩 주어진다. 한 줄에서 인접한 두 원소는 공백 한 칸으로 구분된다.

출력

2 k 형태의 질의마다 답(0 또는 1)을 한 줄에 하나씩 출력한다. 1 a b 연산에 대해서는 출력하지 않는다.

제한

모든 테스트 케이스에 대해 1≤t1≤31 \leq t_1 \leq 3, 1≤t2≤41 \leq t_2 \leq 4, 1≤t3≤21 \leq t_3 \leq 2이다.

t1t_1의 의미

  • t1=1t_1 = 1이면 a=1a = 1이다.
  • t1=2t_1 = 2이면 ∣a∣=1|a| = 1이다.
  • t1=3t_1 = 3이면 ∣a∣≤109|a| \leq 10^9이다.

t2t_2의 의미

  • t2=1t_2 = 1이면 0≤b,k≤300 \leq b, k \leq 30이다.
  • t2=2t_2 = 2이면 0≤b,k≤1000 \leq b, k \leq 100이다.
  • t2=3t_2 = 3이면 0≤b,k≤n0 \leq b, k \leq n이다.
  • t2=4t_2 = 4이면 0≤b,k≤30n0 \leq b, k \leq 30n이다.

t3t_3의 의미

  • t3=1t_3 = 1이면 모든 질의는 갱신 연산 뒤에 온다.
  • t3=2t_3 = 2이면 추가 제약은 없다.

예제1

  1. 예제 1

    입력
    10 3 1 2
    1 100 0
    1 2333 0
    1 -233 0
    2 5
    2 7
    2 15
    1 5 15
    2 15
    1 -1 12
    2 15
    
    예상 출력
    0
    1
    0
    1
    0