움직이는 길 (작은 문제)

각 정점을 다시 방문할 때마다 왼쪽과 오른쪽 간선을 번갈아 따라 1번에서 N번까지 이동할 때 거치는 간선 수를 세고 도달할 수 없으면 Infinity를 출력합니다.

보통6시뮬레이션그래프아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

몇 시간째 숲을 헤매다가 이제 집으로 돌아가려 한다.

숲에는 11번부터 NN번까지 번호가 붙은 빈터가 NN개 있다. 지금 서 있는 곳은 11번 빈터이고, NN번 빈터에 도착해야 숲을 빠져나갈 수 있다. 11번부터 N1N-1번까지의 빈터에는 밖으로 나가는 왼쪽 길과 오른쪽 길이 하나씩 있고, 안으로 들어오는 일방통행 길이 여러 개 있을 수 있다.

숲의 나무는 자리를 옮겨 다니면서 길을 막는다. 어떤 빈터에 kk번째로 들어왔다면 다음 규칙을 따른다.

  • kk가 홀수이면 왼쪽 길로 나가야 한다.
  • kk가 짝수이면 오른쪽 길로 나가야 한다.

모든 길은 일방통행이고 나가는 두 길 중 하나만 열려 있으므로, 각 빈터에서 고를 여지는 없다. 열린 길을 그대로 따라가야 한다.

예를 들어 11번 빈터에 처음 섰을 때는 왼쪽 길로 나간다. 11번 빈터로 다시 돌아오면 그때는 오른쪽 길로 나가고, 세 번째로 돌아오면 다시 왼쪽 길로 나간다.

11번 빈터에서 출발해 NN번 빈터에 닿을 때까지 따라가야 하는 길의 개수를 구하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫째 줄에는 정수 NN이 주어진다. 이어지는 N1N-1개의 줄 중 ii번째 줄에는 두 정수 LiL_iRiR_i가 주어진다. LiL_iii번 빈터에서 왼쪽 길로 나갔을 때 도착하는 빈터의 번호이고, RiR_i는 오른쪽 길로 나갔을 때 도착하는 빈터의 번호이다.

NN번 빈터에 도착하면 숲을 벗어나므로 NN번 빈터의 길은 주어지지 않는다.

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. xx11부터 시작하는 테스트 케이스 번호이고, yyNN번 빈터에 닿을 때까지 따라간 길의 개수이다.

NN번 빈터에 영영 닿지 못한다면 yy 자리에 "Infinity"를 출력한다.

제한

  • 1T301 \le T \le 30
  • 2N102 \le N \le 10
  • 1Li,RiN1 \le L_i, R_i \le N

힌트

첫 번째 예제의 첫 테스트 케이스에서 숲을 빠져나가는 경로는 다음과 같다.

따라간 길의 개수빈터나가는 방향
01왼쪽
12왼쪽
23왼쪽
32오른쪽
41오른쪽
51왼쪽
62왼쪽
73오른쪽
84도착