만드는 중입니다

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

계층 구조

면접 대비

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

요약
간선을 뒤집을 때마다 상사와 부하의 관계가 하나의 루트를 가진 유효한 계층 구조인지 판별합니다.
난이도

쉬움10점 중 3점

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

문제

크레시미르는 계층 구조를 포함한 기업 구조를 공부하고 있다. 그는 회사의 직원들과 그들 사이의 관계를 관찰했다. 이 문제에서는 한 직원이 다른 직원의 직속 상사인 상사-부하 관계만 다룬다.

계층 구조는 직원 NN명과 상사-부하 관계 N−1N - 1개로 이루어진 구조로, 한 사람이 직접 또는 간접적으로 모든 직원의 상사인 구조다. 관찰한 회사에도 직원 NN명과 그런 관계 N−1N - 1개가 있지만, 이것이 올바른 계층 구조인지는 확실하지 않다.

크레시미르는 이 질문에 답하도록 도움을 요청했다. 그는 모든 자료를 노트에 기록했다. 또한 상사-부하 관계 하나를 뒤집어서 부하가 기존 상사의 상사가 되도록 하는 변경을 노트에서 QQ번 영구적으로 한다. 변경할 때마다 현재 상태가 올바른 계층 구조인지 답해야 한다.

입력

첫 줄에 양의 정수 NN (2≤N≤3⋅1052 \le N \le 3 \cdot 10^5)이 주어진다.

다음 N−1N - 1개 줄에는 i=1,2,…,N−1i = 1, 2, \dots, N - 1에 대해 정수 쌍 pip_i, eie_i (1≤pi,ei≤N1 \le p_i, e_i \le N, pi≠eip_i \ne e_i)가 주어진다. 이는 pip_i가 eie_i의 직속 상사임을 뜻한다.

다음 줄에는 음이 아닌 정수 QQ (0≤Q≤1060 \le Q \le 10^6)가 주어진다.

이어지는 QQ개 줄에는 정수 쌍 aia_i, bib_i (1≤ai,bi≤N1 \le a_i, b_i \le N, ai≠bia_i \ne b_i)가 주어진다. 그 시점에 aia_i가 bib_i의 직속 상사이거나, 그 반대이다.

뒤집기를 몇 번 거쳐 계층 구조를 하나 이상 만들 수 있다고 보장된다.

출력

Q+1Q + 1개 줄을 출력한다. 각 상태(초기 상태와 변경할 때마다의 상태)에 대해 현재 구조가 계층 구조이면 DA, 아니면 NE를 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 2
    1 3
    3
    1 2
    1 2
    1 3
    
    예상 출력
    DA
    DA
    DA
    DA
    
  2. 예제 2

    입력
    4
    2 1
    2 3
    1 4
    4
    4 1
    4 1
    3 2
    1 4
    
    예상 출력
    DA
    NE
    DA
    DA
    NE