만드는 중입니다

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

2의 거듭제곱

면접 대비

시간 제한1초메모리 제한2048 MB

요약
N이 0에서 시작할 때, 2의 거듭제곱을 더하거나 빼는 질의를 차례로 처리하고 각 질의 후 N이 0이면 YES를, 아니면 NO를 출력합니다.
난이도

보통10점 중 5점

유형
비트 연산, 수학, 시뮬레이션
정답자
아직 제출이 없습니다

문제

아드리안은 모건에게서 덧셈과 뺄셈을 배웠고, 이제 새로운 개념인 2의 거듭제곱을 배울 차례이다. 2의 거듭제곱은 x≥0x \ge 0일 때 2x2^x 꼴로 나타나는 정수이다. 예를 들어 1,2,4,8,…1, 2, 4, 8, \dots 등이 있다.

처음에 아드리안은 정수 N=0N = 0을 받는다. 이후 모건이 QQ개의 쿼리를 준다. 각 쿼리는 다음 두 가지 유형 중 하나이다.

  • + xx: NN에 2x2^x를 더한다.
  • - xx: NN에서 2x2^x를 뺀다.

아드리안은 쿼리를 처리한 뒤 NN이 00이 되면 박수를 친다. 각 쿼리 뒤에 박수를 쳐야 하는지 알려 달라.

입력

첫 줄에 쿼리의 개수 QQ (1≤Q≤200 0001 \le Q \le 200\,000)가 주어진다. 다음 QQ개의 줄에는 문자 TT와 정수 xx가 주어지며, 하나의 쿼리를 나타낸다. (TT는 + 또는 -이고, 0≤x≤200 0000 \le x \le 200\,000이다.)

출력

각 쿼리를 처리한 뒤 NN이 00이면 한 줄에 YES를, 그렇지 않으면 NO를 출력한다.

예제2

  1. 예제 1

    입력
    6
    + 3
    + 3
    - 4
    - 6
    + 7
    - 6
    
    예상 출력
    NO
    NO
    YES
    NO
    NO
    YES
    
  2. 예제 2

    입력
    13
    + 13324
    + 5773
    - 5772
    + 13324
    + 0
    - 5772
    - 13325
    - 0
    + 0
    + 0
    - 200000
    - 1
    + 200000
    
    예상 출력
    NO
    NO
    NO
    NO
    NO
    NO
    NO
    YES
    NO
    NO
    NO
    NO
    YES