텔레포터 서브태스크 2초 1024MB
문제
정보 연구소에는 방이
이들 방 중, 방
단,
정보 연구소의 직원인 정올이와 한글이는, 이들 방과 텔레포터를 사용하여 게임을 진행한다. 게임은 다음과 같이 진행된다.
정올이는 게임 시작 시, 방
1 에 있다.라운드가 반복해서 진행된다. 각각의 라운드는 다음과 같이 진행된다.
현재, 정올이가 방
x 에 있다고 하자. 정올이는 방x 에 배치된A_x 개의 텔레포터 중 하나를 선택한다.정올이가 방
x 의y 번째 텔레포터를 선택했다고 하자. 한글이는 그 텔레포터의 행선지를 방P_{x, y} 또는 방Q_{x, y} 중 하나로 설정한다. 어느 쪽을 선택할지는 라운드마다 달라도 된다.정올이는 방
x 의y 번째 텔레포터를 이용한다. 정올이는 한글이에 의해 선택된 행선지(방P_{x, y} 또는 방Q_{x, y} 중 하나)로 이동한다.정올이가 방
N 으로 이동한 경우, 또는 이 라운드가10^{100} 라운드인 경우, 게임이 종료된다.
정올이의 목적은 게임이 종료되기까지 진행되는 라운드 수를 최대한 적게 하는 것이며, 반면 한글이의 목적은 게임이 종료되기까지 진행되는 라운드 수를 최대한 많게 하는 것이다.
정보 연구소의 정보가 주어졌을 때, 양쪽이 최선을 다했을 경우 몇 라운드에서 게임이 종료되는지를 구하는 프로그램을 작성하라.
입력
입력은 다음 형식으로 표준 입력을 통해 주어진다.
…
…
…
…
…
제한
2 ≤ N ≤ 200,000 A_i ≥ 1 (1 ≤ i ≤ N-1 )A_1 + A_2 + … + A_(N-1) ≤ 200,000 1 ≤ P(i, j) ≤ N (1 ≤ i ≤ N-1 ,1 ≤ j ≤ A_i )1 ≤ Q(i, j) ≤ N (1 ≤ i ≤ N-1 ,1 ≤ j ≤ A_i )입력되는 값은 모두 정수이다.
출력
표준 출력에, 양쪽이 최선을 다했을 때 몇 라운드에서 게임이 종료되는지를 한 줄에 출력하라.
단,
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 13점 | |
| #2 | 19점 | |
| #3 | 22점 | |
| #4 | 30점 | |
| #5 | 16점 | 추가 제약 조건 없음 |
예제 #1
3
2
2 2
3 2
1
3 3
2
양쪽이 최선을 다했을 때, 예를 들어 다음과 같이 게임이 진행된다.
처음, 정올이는 방 1에 있다.
1번째 라운드
정올이는 방 1의 2번째 텔레포터를 선택한다. 이 텔레포터의 행선지는 방 3 또는 방 2로 설정할 수 있다.
한글이는 방 1의 2번째 텔레포터의 행선지를 방 2로 설정한다.
정올이는 방 1의 2번째 텔레포터를 이용한다. 정올이는 방 2로 이동한다.2번째 라운드
정올이는 방 2의 1번째 텔레포터를 선택한다. 이 텔레포터의 행선지는 방 3 또는 방 3으로 설정할 수 있다.
한글이는 방 2의 1번째 텔레포터의 행선지를 방 3으로 설정한다.
정올이는 방 2의 1번째 텔레포터를 이용한다. 정올이는 방 3으로 이동한다.
정올이가 방 3으로 이동했으므로, 게임이 종료된다.
이때, 게임은 2번째 라운드에서 종료되므로, 2를 출력한다.
이 입력 예제는 소과제 2, 3, 5의 제한을 만족한다.
예제 #2
2
1
1 2
-1
양쪽이 최선을 다했을 때, 게임은 10^100라운드에서 종료되므로, -1을 출력한다.
이 입력 예제는 소과제 3, 4, 5의 제한을 만족한다.
예제 #3
5
3
4 4
2 2
1 1
1
3 3
2
1 1
5 5
2
5 5
3 3
2
이 입력 예제는 소과제 1, 3, 5의 제한을 만족한다.