만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

토너먼트

면접 대비

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

요약
주어진 대진 순서 A와 k개의 후보 순서 B_j를 비교하여, 각 후보가 모든 선수 쌍의 만나는 라운드를 A와 똑같이 유지하는지 판별합니다.
난이도

보통10점 중 5점

유형
배열, 구현
정답자
아직 제출이 없습니다

문제

선수 nn명(nn은 2의 거듭제곱)이 탈락식 토너먼트를 치른다. 각 선수에게는 1 이상 nn 이하의 서로 다른 번호가 하나씩 주어진다. 대진표는 다음과 같이 만든다. 선수 번호를 하나씩 뽑고, ii번째로 뽑은 번호를 aia_i라 한다. 첫 라운드에서는 a1a_1번 선수가 a2a_2번 선수와, a3a_3번 선수가 a4a_4번 선수와 대결한다. 이렇게 승자가 n/2n/2명 남을 때까지 치른다. 둘째 라운드에서는 첫 번째 승자가 두 번째 승자와, 세 번째 승자가 네 번째 승자와 대결하여 승자가 n/4n/4명 남을 때까지 치른다. 이를 반복하여 우승자 한 명이 남을 때까지 계속한다. 일부 선수는 일정 중 맞지 않는 부분이 있다며 수열 AA를 다른 수열 BjB_j로 바꾸자고 제안했다. 나머지 선수들은 대진표가 원래와 같이 유지되기를 원한다. 즉, 두 선수가 계속 이기기만 한다면 어떤 두 선수든 같은 라운드에서 맞붙을 수 있어야 한다.

입력

첫 줄에 선수 수 nn과 제안된 수열의 개수 kk가 주어진다. 둘째 줄에는 수열 AA가 주어지며, ii번째 수는 aia_i이다. 이어지는 kk개의 줄에는 수열 BjB_j (1≤j≤k1 \le j \le k)가 주어진다. j+2j+2번째 줄의 ii번째 수 bj,ib_{j,i}는 aia_i를 대신하여 제안된 값이다 (1≤i≤n1 \le i \le n).

출력

kk개의 줄에 각각 TAIP 또는 NE 중 한 단어를 출력한다. BjB_j로 정해지는 토너먼트가 AA로 정해지는 토너먼트와 같으면 TAIP, 다르면 NE를 출력한다.

제한

4≤n≤2164 \le n \le 2^{16}, nn은 2의 거듭제곱이다. 1≤k≤201 \le k \le 20, 1≤ai,bj,i≤n1 \le a_i, b_{j,i} \le n. u≠vu \ne v이면 au≠ava_u \ne a_v이고 bj,u≠bj,vb_{j,u} \ne b_{j,v}이다.

예제2

  1. 예제 1

    입력
    4 2
    2 1 4 3
    3 4 2 1
    2 4 1 3
    
    예상 출력
    TAIP
    NE
    
  2. 예제 2

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