해결한 사람
0
명
정답률
0.00
%
시간 제한
3000
ms
메모리 제한
245
MB
In the NN 나라에는 1부터 n까지 번호가 매겨진 n개의 도시와 이들을 연결하는 n - 1개의 도로가 있다. 어떤 두 도시 사이에도 도로를 따라가는 경로가 있다.
도시 사이에는 m개의 양방향 버스 노선이 있다. 버스는 두 도시 사이의 최단 경로를 운행하며, 지나가는 모든 도시에 정차한다. 버스를 이용하면 해당 노선의 어느 정류장에서든 다른 어느 정류장으로든 이동할 수 있다. 도시 사이를 이동할 때는 버스만 이용할 수 있다.
당신은 q개의 질문에 관심이 있다. 한 도시에서 다른 도시로 이동할 수 있는지, 그리고 이를 위해 이용해야 하는 버스의 최소 개수는 얼마인가?
첫 번째 줄에 도시의 개수를 나타내는 하나의 정수 n (2 ≤ n ≤ 2 ⋅ )가 주어진다.
두 번째 줄에 n - 1개의 정수 , , …, (1 ≤ < i)가 주어진다. 여기서 는 도시 와 도시 i가 도로로 연결되어 있음을 의미한다.
세 번째 줄에 버스 노선의 개수를 나타내는 하나의 정수 m (1 ≤ m ≤ 2 ⋅ )가 주어진다.
이어지는 m개의 각 줄에는 2개의 정수 a와 b (1 ≤ a, b ≤ n, a ≠ b)가 주어진다. 이는 도시 a와 도시 b 사이에 버스 노선이 있음을 의미한다. 두 도시 사이에 노선이 하나보다 많이 있을 수도 있다.
다음 줄에 관심 있는 질문의 개수를 나타내는 하나의 정수 q (1 ≤ q ≤ 2 ⋅ )가 주어진다.
이어지는 q개의 각 줄에는 2개의 정수 v와 u (1 ≤ v, u ≤ n, v ≠ u)가 주어진다. 이는 도시 v에서 도시 u로 이동할 수 있는지, 그리고 이를 위해 이용해야 하는 버스의 최소 개수가 얼마인지에 관심이 있음을 의미한다.
각 질문의 답을 별도의 줄에 출력한다. 한 도시에서 다른 도시로 이동할 방법이 없다면 -1을 출력한다. 그렇지 않다면 이용해야 하는 버스의 최소 개수를 출력한다.
7
1 1 2 3 4 1
4
4 7
3 5
7 6
7 6
6
4 6
3 1
3 2
2 7
6 3
5 3
1
-1
-1
1
-1
1
7
1 1 1 4 5 6
4
4 2
5 4
1 3
6 7
6
4 5
3 5
7 2
4 5
3 2
5 3
1
3
-1
1
2
3
첫 번째 예제의 노선은 그림에 표시되어 있다.