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

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

세 가지 대회

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

요약
세 대회에서 각 사람의 순위가 주어지고, 두 대회 이상에서 b보다 좋은 순위면 a가 b를 직접 이긴다. 이 관계의 도달 가능성을 묻는 질의에 답한다.
난이도

어려움10점 중 8점

유형
그래프, 정렬, DFS, 투 포인터
정답자
아직 제출이 없습니다

문제

지난달에 nn명의 사람들이 세 가지 대회에 참가했다. 사람들은 11부터 nn까지의 서로 다른 정수로 구분된다. 각 대회에서 사람들은 성적순으로 정렬되어 11부터 nn까지의 순위를 받았다. 순위가 낮을수록 더 좋은 성적이다. 어떤 대회에서도 동점은 없었다.

오늘은 nn명이 한꺼번에 겨루는 대신, 두 사람이 일대일로 겨룬다. 경기에서 이기는 사람은 세 대회 중 적어도 두 대회에서 이긴 사람이다. 이긴 사람은 다음 사람과 겨룬다. 이는 꽤 흥미로운 결과를 낳았다. 사람 aa가 사람 bb를 직접 이길 수 없더라도, 다른 사람 cc가 bb를 이기고 aa가 cc를 이기는 것이 가능하다. 이런 경우 aa가 bb를 "간접적으로" 이긴다고 말할 수 있다. 두 사람이 서로를 간접적으로 이기는 것도 가능하다!

형식적으로, 사람 aa가 다른 사람 bb를 직접 이긴다는 것은 aa가 적어도 두 대회에서 bb보다 낮은 순위를 가짐을 뜻한다. 또한 aa가 bb를 간접적으로 이긴다는 것은 p_1,p_2,⋯ ,p_kp\_1, p\_2, \cdots, p\_k (k≥2k \geq 2)의 사람 수열이 존재하여 모든 i=1,⋯ ,k−1i = 1, \cdots, k-1에 대해 p_ip\_i가 p_i+1p\_{i+1}을 직접 이기고, p_1=ap\_1 = a, p_k=bp\_k = b임을 뜻한다.

각 대회에서의 사람들의 순위가 주어질 때, 사람 aa가 다른 사람 bb를 간접적으로 이기는지 묻는 qq개의 질문에 답하라.

입력

첫째 줄에 정수 n (2≤n≤2⋅105)n\ (2 \leq n \leq 2 \cdot 10^5)이 주어진다. nn은 사람 수이다.

다음 nn개의 줄에는 각각 세 개의 정수가 주어지며, 사람 11부터 사람 nn까지 각 사람의 세 대회에서의 순위를 순서대로 나타낸다. 각 대회에서 11부터 nn까지의 각 정수 순위는 정확히 한 번씩 나타난다.

다음 줄에는 정수 q (1≤q≤2⋅105)q\ (1 \leq q \leq 2 \cdot 10^5)가 주어진다. qq는 질문의 수이다.

다음 qq개의 줄에는 각각 두 개의 정수 aa와 b (1≤a,b≤nb\ (1 \le a, b \le n, a≠b)a \neq b)가 주어지며, 사람 aa가 사람 bb를 간접적으로 이기는지 묻는다.

출력

qq개의 줄을 출력한다. ii번째 줄에는 사람 aa가 사람 bb를 간접적으로 이기면 \verb YES , 그렇지 않으면 \verb NO \를 출력한다.

힌트

사람 1은 사람 2를 직접 (그리고 간접적으로) 이긴다. 사람 2는 사람 1을 직접 이기지 못하지만, 2는 3을 직접 이기고 3은 1을 직접 이기므로 2는 1을 간접적으로 이긴다.

예제1

  1. 예제 1

    입력
    4
    2 4 3
    3 1 4
    4 3 2
    1 2 1
    3
    1 2
    2 1
    3 4
    
    예상 출력
    YES
    YES
    NO