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

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

수족관

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

요약
매일 큰 물고기가 자신보다 작은 물고기 중 가장 작은 물고기를 먹고 질량이 절반만큼 늘어날 때 각 질의 물고기가 x일 뒤에도 살아남는지 판단합니다.
난이도

보통10점 중 6점

유형
시뮬레이션, 정렬, 투 포인터, 수학
정답자
아직 제출이 없습니다

문제

코직(Kozik)의 수족관에는 아프리카 물고기들이 살고 있다. 각 물고기는 질량과 나이를 가지며, 매일 자신보다 작은 다른 물고기 한 마리를 잡아먹어 배고픔을 해결해야 한다. 먹이를 구하지 못한 물고기는 그날 하루가 끝날 때 죽는다.

하루 동안 물고기들은 한 마리씩 차례로 행동한다. 배고픈 물고기 중 질량이 가장 큰 물고기가 먼저 행동하며, 질량이 같다면 그중 가장 나이가 많은 물고기가 먼저 행동한다. 행동하는 물고기는 수족관에 남아 있는 물고기 중 가장 작은 물고기를 잡아먹으며, 질량이 같은 물고기가 여럿이면 그중 가장 어린 물고기가 먹힌다. 물고기가 다른 물고기를 잡아먹으면 그 물고기의 질량은 먹힌 물고기 질량의 절반만큼 늘어나고, 그날은 더 이상 배고프지 않다. 자신의 차례가 되었을 때 잡아먹을 더 작은 물고기가 남아 있지 않으면, 그 물고기는 굶어서 그날 하루가 끝날 때 죽는다.

물고기의 크기는 먼저 질량으로 비교하고, 질량이 같으면 더 어린 물고기를 더 작은 것으로 본다. 모든 물고기의 나이는 서로 다르므로 이 순서는 전순서이며, 질량은 서로 같을 수 있다. 물고기는 이 순서에서 자신보다 작은 물고기만 잡아먹을 수 있다.

코직이 고른 물고기 rr과 날짜 수 xx에 대해, xx일 뒤에도 물고기 rr이 살아 있는지 판정하여라. 단, x=0x = 0은 바로 지금을 뜻한다.

입력

첫째 줄에 물고기의 수를 나타내는 정수 nn (1≤n≤1061 \le n \le 10^6)이 주어진다.

다음 nn개의 줄에는 각각 두 정수 mim_i, wiw_i (1≤mi,wi≤1091 \le m_i, w_i \le 10^9)가 주어지며, 이는 ii번째 물고기의 질량과 나이를 뜻한다.

그다음 줄에는 질의의 수를 나타내는 정수 zz (1≤z≤1061 \le z \le 10^6)가 주어진다.

이어지는 zz개의 줄에는 각각 두 정수 rkr_k, xkx_k (1≤rk≤n1 \le r_k \le n, 0≤xk≤1090 \le x_k \le 10^9)가 주어지며, 이는 물고기 rkr_k가 xkx_k일 뒤에도 살아 있는지를 묻는 질의이다.

출력

각 질의에 대해, 물고기 rkr_k가 xkx_k일 뒤에도 살아 있으면 TAK을, 그렇지 않으면 NIE를 출력한다. 여기서 TAK은 '예', NIE는 '아니오'를 뜻한다. 질의가 주어진 순서대로 한 줄에 하나씩 출력한다.

예제3

  1. 예제 1

    입력
    4
    2 1
    4 2
    7 3
    8 4
    3 
    2 1 
    2 0 
    3 1
    
    예상 출력
    NIE
    TAK
    TAK
    
  2. 예제 2

    입력
    1
    5 7
    2
    1 0
    1 1
    
    예상 출력
    TAK
    NIE
    
  3. 예제 3

    입력
    4
    1 1
    8 2
    10 3
    11 4
    6
    1 0
    1 1
    2 1
    4 1
    3 2
    3 3
    
    예상 출력
    TAK
    NIE
    NIE
    TAK
    TAK
    NIE