아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

주머니 더미

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

요약
가방을 순서대로 처리하면서, 새 가방이 서로 달랐던 두 동치류를 합치게 되는 경우에만 버리고 각 가방의 처리 결과를 출력한다.
난이도

어려움10점 중 8점

유형
구간, 유니온 파인드, 정렬, 구현
정답자
아직 제출이 없습니다

문제

어느 수학자가 매일 가게에 가서 주머니 하나를 사 온다. 주머니는 예쁘고 실용적이어서 수학자는 나중에 쓰려고 모아 둔다. 또 주머니를 크기별로 정리해 두고 싶어 한다. 큰 주머니는 큰 주머니끼리, 작은 주머니는 작은 주머니끼리.

ii번째 날에 산 주머니(그냥 주머니 ii라고 하자)는 접었을 때 부피가 aia_i, 폈을 때 부피가 bib_i이다(당연히 ai<bia_i < b_i). 주머니 ii는 ai<bja_i < b_j이면 주머니 jj에 들어간다. 수학자는 주머니 ii가 주머니 jj에 들어가고 그 반대도 성립하면 두 주머니 ii와 jj가 같다고(그래서 함께 보관해야 한다고) 생각한다.

안타깝게도 주머니 ii, jj, kk가 있어서 주머니 ii와 jj가 같고 주머니 jj와 kk가 같지만 주머니 ii와 kk는 같지 않은 경우가 가끔 생긴다. 수학자는 이 사실에 몹시 놀란다. 그가 아는 동치 관계에 어긋나기 때문이다. 새 주머니를 모음에 추가할 때 위와 같은 모순된 세 쌍이 생기면 새 주머니를 버리고, 그렇지 않으면 보관한다(그 뒤로는 절대 버리지 않는다).

각 주머니에 대해 보관되었는지 버려졌는지 판별하시오.

입력

첫 줄에 정수 nn이 주어진다. 이는 주머니의 수이다(1≤n≤3⋅1051 \le n \le 3 \cdot 10^5).

다음 nn개의 줄에 주머니의 정보가 주어진다. 이 중 ii번째 줄에 두 정수 aia_i와 bib_i가 주어진다. 이는 각각 주머니 ii를 접었을 때와 폈을 때의 크기이다(1≤ai<bi≤1091 \le a_i < b_i \le 10^9).

출력

nn개의 줄을 출력한다. ii번째 줄에는 수학자가 주머니 ii를 보관했으면 KEPT, 버렸으면 THROWN AWAY를 출력한다.

예제1

  1. 예제 1

    입력
    10
    1 4
    3 5
    6 8
    7 9
    1 2
    6 7
    4 7
    5 7
    5 8
    9 10
    
    예상 출력
    KEPT
    KEPT
    KEPT
    KEPT
    THROWN AWAY
    THROWN AWAY
    THROWN AWAY
    THROWN AWAY
    KEPT
    KEPT