이진 트리에 메달 놓기

깊이 번호가 적힌 메달을 위에서부터 차례로 완전 이진 트리에 놓되, 놓인 두 노드가 조상-자손 관계가 되지 않도록 최선으로 배치했을 때 각 메달을 놓을 수 있는지 판정한다.

어려움8그리디트리구현아직 제출이 없습니다시간 제한4초메모리 제한512 MB

문제

완전 이진 트리를 그린 그림이 있다. 그림 1이 그런 그림이다. 그림에는 유한한 부분만 그려져 있지만, 필요하면 잎 아래에 노드를 계속 붙여서 트리를 얼마든지 깊게 만들 수 있다.

그림 1. 완전 이진 트리 그림

노드의 깊이는 재귀적으로 정한다. 루트의 깊이는 0이고, 깊이가 dd인 노드의 두 자식은 깊이가 d+1d + 1이다.

숫자가 하나씩 새겨진 메달도 여러 개 쌓여 있다. 다음 조건을 모두 지키면서 이 메달을 그림 위에 놓을 수 있는지 알아보려 한다.

  • dd가 새겨진 메달은 깊이가 dd인 노드에 놓는다.
  • 한 노드에는 메달을 최대 한 개까지 놓는다.
  • 메달이 놓인 노드에서 루트로 올라가는 경로는 메달이 놓인 다른 노드를 지나지 않는다.

메달은 더미의 맨 위부터 아래로 한 개씩 순서대로 놓는다. 조건을 지키면서 놓을 방법이 전혀 없는 메달은 버리고 다음 메달로 넘어간다.

한 메달을 놓을 수 있는 노드가 여러 개일 수도 있다. 이때는 가장 좋은 배치를 찾는다. 조건을 만족하는 배치가 둘 이상이면 더미에서 더 위에 있는 메달을 놓는 쪽이 더 좋다. 예를 들어 메달이 네 개일 때 첫 번째와 두 번째만 놓는 배치와 첫 번째, 세 번째, 네 번째를 놓는 배치가 모두 가능하다면 앞쪽이 더 좋다.

위에서부터 2, 3, 1, 1, 4, 2가 새겨진 메달 여섯 개가 쌓여 있는 경우를 보자.

  • 2가 새겨진 첫 번째 메달은 그림 2의 (A)처럼 놓을 수 있다.
  • 3이 새겨진 두 번째 메달은 그림 2의 (B)처럼 놓을 수 있다.
  • 1이 새겨진 세 번째 메달은, 두 번째 메달을 (B)의 자리에 그대로 두면 놓을 수 없다. 깊이가 1인 노드 두 개가 모두 메달이 이미 놓인 노드에서 루트로 가는 경로 위에 있기 때문이다. 두 번째 메달을 조건에 맞는 다른 노드로 옮기면 그림 2의 (C)와 같은 배치가 된다.
  • 다시 1이 새겨진 네 번째 메달은 이미 놓은 세 개를 어떻게 옮겨도 놓을 수 없다. 이 메달은 버린다.
  • 4가 새겨진 다섯 번째 메달은 그림 2의 (D)처럼 놓을 수 있다.
  • 2가 새겨진 마지막 메달은 어떻게 옮겨도 어느 노드에도 놓을 수 없다.

그림 2. 메달 배치

입력

입력은 테스트 케이스 하나로 이루어지며 형식은 다음과 같다.

n
x1
.
.
.
xn

첫째 줄에 메달의 개수 nn이 주어진다 (1n5×1051 \le n \le 5 \times 10^5). 다음 nn개 줄에는 양의 정수가 한 줄에 하나씩 주어진다. 그중 ii번째 줄의 xix_i (1xi1091 \le x_i \le 10^9)는 더미의 위에서 ii번째 메달에 새겨진 수다.

출력

가장 좋은 배치를 골랐을 때, i=1i = 1부터 nn까지 각 ii에 대해 ii번째 메달을 놓았으면 Yes를, 버렸으면 No를 한 줄에 하나씩 출력한다.