flippy mex

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

요약
카드를 한 장씩 추가할 때마다 지금까지의 카드를 임의로 뒤집어 얻을 수 있는 mex 값이 몇 가지인지 구한다.
난이도

어려움10점 중 8점

유형
해시맵, 구현, 수학, 그리디
정답자
아직 제출이 없습니다

문제

mex\mathrm{mex}는 주어진 수열에 없는 00 이상의 정수 중 가장 작은 것을 가리키는 함수이다. 준서는 mex\mathrm{mex}를 좋아하는 시우를 위해 NN장의 카드로 하는 놀이를 만들었다.

규칙은 다음과 같으며, 11번 단계부터 NN번 단계까지 진행한다.

  • ii번 단계에서, 준서가 ii번 카드를 테이블에 놓는다. 카드의 앞면과 뒷면에는 각각 00 이상의 정수 A_iA\_i, B_iB\_i가 적혀 있다.
  • 시우는 테이블에 있는 ii개의 카드를 뒤집는 2i2^i가지 경우 각각에 대해, 위를 향한 면에 적힌 수들을 수열로 보고 mex\mathrm{mex} 값을 계산한다. 이후, 가능한 mex\mathrm{mex} 값의 가짓수를 말한다.
  • 준서는 시우의 답을 확인하고 i+1i + 1번 단계로 넘어간다.

시우를 도와, 각 단계에서 시우가 말해야 하는 답을 찾아주자.

입력

첫 번째 줄에 카드의 개수 NN가 주어진다. (1≤N≤106)(1 \le N \le 10^6)

두 번째 줄부터 NN개의 줄에 걸쳐 각 줄마다 순서대로 ii번 카드의 정보를 의미하는 두 정수 A_i,B_iA\_i, B\_i가 공백으로 구분되어 주어진다. (0≤A_i,B_i≤106)(0 \le A\_i, B\_i \le 10^6)

출력

ii번째 줄에 시우가 ii번 단계에서 말해야 하는 답을 출력한다.

예제1

  1. 예제 1

    입력
    8
    7 7
    0 4
    1 3
    5 1
    2 2
    1 4
    4 5
    3 3
    
    예상 출력
    1
    2
    3
    3
    4
    5
    6
    5