대체 경로
우측 버튼을 눌러 기기를 연결해주세요.
문제 정보
대체 경로
보통
유형
프로그래밍
배점
100
참여자
407
정답률
97%
21
2

문제


플레이어는 번부터 번까지의 번호가 붙은 개의 도시와 개의 도로가 있는 나라에 살고 있다. 각 도로는 서로 다른 두 도시를 양방향으로 연결하고 있고, 주어진 도로만을 이용해 임의의 두 도시 사이를 이동하는 것이 가능하다.

플레이어는 차를 타고 번 도시에서 번 도시로 이동하려고 한다. 플레이어가 두 도시 사이를 이동할 때는 항상 가장 작은 수의 도시를 거치는 경로를 따라 이동한다. 예를 들어 아래 그림과 같이 도시와 도로가 주어지고, 플레이어가 1번 도시에서 4번 도시로 이동하려고 할 때는 항상 1 → 3 → 4의 경로를 따라 이동한다. 이 경우에는 출발 도시와 도착 도시를 포함해 총 세 개의 도시를 거쳐 이동할 수 있다. 1 → 5 → 2  4의 경로로 이동하는 것은 출발 도시와 도착 도시를 포함해 네 개의 도시를 거치는 경로이므로, 플레이어는 해당 경로로는 이동하지 않을 것이다.


항상 가장 작은 수의 도시를 거치는 경로가 유일하지 않을 수 있다. 아래 그림과 같이 도시와 도로가 주어지고, 3번 도시에서 1번 도시로 이동하고자 할 때 가장 작은 수의 도시를 거치는 경로는 3 → 2 → 1과 → 4 → 1의 두 개가 있다. 이런 경우에 플레이어는 두 경로 중 아무 경로나 택해서 이동한다.

플레이어가 사는 나라에서는 자주 공사를 한다. 일 뒤에는 번 도시에서 하루 동안 공사를 할 예정이다. 어떤 도시에서 공사를 하고 있으면, 그 도시에 연결된 모든 도로를 일시적으로 사용할 수 없다.

어떤 도시에서 공사를 하느냐에 따라 플레이어가 이동해야 하는 경로가 달라질 수 있다. 앞으로 일 동안 매일 플레이어는 번 도시에서 번 도시로 이동한다고 할 때, 각 날마다 플레이어가 이동하는 경로에 포함되는 도시의 수를 구해서 출력해보자. 단, 출발 도시와 도착 도시에서 공사를 하거나, 두 도시 사이를 이동할 수 없는 경우에는 -1 을 대신 출력한다.


예제 설명


첫 번째 예제는 지문의 첫 번째 그림에 해당하는 예시이다.
1번 도시와 4번 도시가 공사 중일 때는 항상 두 도시 사이를 이동할 수 없다.
2번 도시와 5번 도시가 공사 중일 때는 1 → 3 → 4의 경로를 따라 이동할 수 있다. 경로에 포함된 도시는 세 개이다.
3번 도시가 공사 중일 때는 
1 → 3 → 4의 경로를 따라 이동할 수 없다. 따라서 1 → 5 → 2  4의 경로로 이동해야 하고, 이때 경로에 포함된 도시는 네 개이다.

두 번째 예제는 지문의 두 번째 그림에 해당하는 예시이다.

세 번째 예제에서 도시와 도로는 아래 그림과 같이 주어진다.



입력


첫째 줄에 도시의 수 , 도로의 수 , 그리고 출발 도시 와 도착 도시 가 공백을 두고 주어진다.
다음 개의 줄에는 각 도로가 연결하는 두 도시의 번호 가 공백을 두고 주어진다.

  • 어떤 도시에서도 공사를 하고 있지 않을 때, 주어진 도로만을 이용해 임의의 두 도시 사이를 이동하는 것이 가능하다.
  • 입력에서 주어지는 모든 수는 정수이다.


출력


 개의 줄에 걸쳐 답을 출력한다. 번째 줄에는 번 도시가 공사 중일 때 플레이어가 이동하는 경로에 포함되는 도시의 수를 출력한다. 만약 출발 도시 또는 도착 도시가 공사 중이거나, 두 도시 사이를 이동하는 것이 불가능한 경우에는 -1 을 대신 출력한다.

입/출력 예시
:
공백
:
줄 바꿈
:
예시 1
입력
5514
13
43
25
42
15
출력
-1
3
4
-1
3
예시 2
입력
4431
41
43
32
21
출력
-1
3
-1
3
예시 3
입력
91019
12
13
34
25
45
56
67
58
79
89
출력
-1
6
5
5
-1
5
5
6
-1
⋇ 입출력 형식을 잘 지켜주세요
Q&A
누구나 질문하고 답변할 수 있는 Q&A입니다. 문제를 풀며 어려웠던 부분에 대해 질문해보세요.
이 문제에 관한 질문 (0)