만드는 중입니다

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

트리 호핑

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

요약
트리와 노드 순열이 주어질 때, 순열에서 이웃한 두 노드 사이의 트리 거리가 모두 3 이하인지 확인한다.
난이도

보통10점 중 4점

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

문제

트리와 그 정점들의 순열이 주어진다. 어떤 트리와 어떤 출발/도착 노드 쌍에 대해서도, 첫 번째 노드가 출발 노드이고 마지막 노드가 도착 노드이며 순열에서 인접한 노드 사이의 거리가 3 이하인 순열이 존재한다는 것이 증명될 수 있다.

여러분의 임무는 이 성질을 검증하는 프로그램을 작성하는 것이다. 이러한 순열과 트리가 주어졌을 때, 순열에서 인접한 노드 사이의 거리가 3 이하인지 검증하라.

입력

입력의 첫 번째 줄에는 정수 tt (1≤t≤50,0001 \le t \le 50{,}000)가 주어지며, 이는 테스트 케이스의 수이다.

각 테스트 케이스에서 입력의 첫 번째 줄에는 정수 nn (2≤n≤100,0002 \le n \le 100{,}000)이 주어지며, 이는 트리의 노드 수이다. 노드는 11부터 nn까지 번호가 매겨져 있다.

다음 n−1n-1개의 줄에는 각각 두 정수 aa와 bb (1≤a<b≤n1 \le a < b \le n)가 주어지며, 이는 노드 aa와 노드 bb를 잇는 트리의 간선을 나타낸다.

그다음 nn개의 줄에는 각각 정수 pp (1≤p≤n1 \le p \le n, 모든 값은 서로 다름)가 주어진다. 이는 노드들의 순열이다.

모든 테스트 케이스에 걸친 nn의 합은 100,000100{,}000을 넘지 않는다.

출력

각 테스트 케이스마다 한 줄에 정수 하나를 출력한다. 주어진 순열이 순열에서 인접한 모든 노드 쌍의 트리에서의 거리가 3 이하라는 조건을 만족하면 11을 출력한다. 주어진 순열이 이 조건을 만족하지 않으면 00을 출력한다.

예제1

  1. 예제 1

    입력
    2
    5
    1 2
    2 3
    3 4
    4 5
    1
    3
    2
    5
    4
    5
    1 2
    2 3
    3 4
    4 5
    1
    5
    2
    3
    4
    
    예상 출력
    1
    0