수열과 쿼리 20

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

요약
0 하나만 들어 있는 집합에 원소를 넣고 빼며, 모든 원소에 x를 XOR한 뒤 최댓값을 묻는 질의를 처리한다.
난이도

어려움10점 중 8점

유형
트라이, 비트 연산, 그리디, 이분 탐색
정답자
아직 제출이 없습니다

문제

0이 하나 포함되어 있는 배열 A가 있다. 이때, 다음 쿼리를 수행해야 한다.

  • 1 x: A에 x를 추가한다.
  • 2 x: A에서 x를 제거한다. A에 x가 두 개 이상 있는 경우에는 하나만 삭제한다. 항상 A에 x가 있는 쿼리만 주어진다.
  • 3 x: A에 포함된 각각의 원소와 x를 XOR 연산을 한 다음, 가장 큰 값을 출력한다.

입력

첫째 줄에 쿼리의 개수 M(1 ≤ M ≤ 200,000)이 주어진다. 둘째 줄부터 M개의 줄에 쿼리가 주어진다. 입력으로 주어지는 x의 범위는 10^9보다 작거나 같은 자연수이다.

3번 쿼리는 하나 이상 주어진다.

출력

쿼리를 수행한 결과를 출력한다.

예제1

  1. 예제 1

    입력
    10
    1 8
    1 9
    1 11
    1 6
    1 1
    3 3
    2 8
    3 3
    3 8
    3 11
    
    예상 출력
    11
    10
    14
    13