프라임 라우팅

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

요약
무향 그래프에서 같은 간선을 여러 번 지나도 된다고 할 때 S에서 T로 가는 길이 중 소수인 최소 길이를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

유형
그래프, BFS, 정수론, 최단 경로
정답자
아직 제출이 없습니다

문제

Fox Jiro는 ACM-ICPC 2018 아시아 요코하마 지역 대회의 스태프 중 한 명으로, 대회장의 네트워크를 설계하는 일을 맡고 있다. 그의 네트워크는 NN개의 컴퓨터로 이루어져 있고, 이들은 MM개의 케이블로 연결되어 있다. ii번째 케이블은 aia_i번째 컴퓨터와 bib_i번째 컴퓨터를 연결하며, 양방향으로 데이터를 전송한다. 여러분의 팀은 대회에서 SS번째 컴퓨터를 사용하고, 심사 서버는 TT번째 컴퓨터이다.

그는 소수의 마법 같은 힘으로 참가자들의 성능을 최대화하기 위해 네트워크의 라우팅 알고리즘을 조정하기로 했다. 이 알고리즘에서 패킷(네트워크가 나르는 데이터의 단위)은 가능하다면 소수 번 케이블을 통과하여 여러분의 컴퓨터에서 심사 서버로 보내진다. 불가능하다면 참가자들은 소수의 마법 같은 힘으로 이득을 얻을 수 없다. 이 목표를 달성하기 위해 패킷은 같은 케이블을 여러 번 통과할 수 있다.

여러분은 SS에서 TT로 가는 패킷이 케이블을 통과해야 하는 최소 횟수를 계산하는 프로그램을 작성하기로 했다. 패킷이 케이블을 통과하는 횟수가 소수가 될 수 없다면 −1-1을 출력한다.

입력

입력은 하나의 테스트 케이스로 이루어져 있으며, 형식은 다음과 같다.

$N$ $M$ $S$ $T$ $a_1$ $b_1$ $\vdots$ $a_M$ $b_M$

첫째 줄은 네 개의 정수 NN, MM, SS, TT로 이루어져 있다(2≤N≤1052 \leq N \leq 10^5, 1≤M≤1051 \leq M \leq 10^5, 1≤S,T≤N1 \leq S, T \leq N, S≠TS \neq T). 다음 MM개 줄의 ii번째 줄은 두 개의 정수 aia_i와 bib_i로 이루어져 있으며(1≤ai<bi≤N1 \leq a_i < b_i \leq N), 이는 ii번째 케이블이 네트워크에서 aia_i번째 컴퓨터와 bib_i번째 컴퓨터를 연결한다는 뜻이다. 네트워크는 다음 조건을 만족한다고 가정할 수 있다.

  • 네트워크에 다중 간선이 없다. 즉, 모든 ii, jj(1≤i<j≤M1 \leq i < j \leq M)에 대해 (ai,bi)≠(aj,bj)(a_i, b_i) \neq (a_j, b_j)이다.
  • NN개의 컴퓨터에서 보낸 패킷은 몇 개의 케이블을 통과하여 TT에 도달할 수 있다. 그 개수가 소수일 필요는 없다.

출력

SS에서 TT로 보낸 패킷이 케이블을 통과하는 횟수가 소수가 되는 방법이 있다면, 그 최소 소수를 한 줄에 출력한다. 그렇지 않다면 −1-1을 출력한다.

예제4

  1. 예제 1

    입력
    5 5 1 5
    1 2
    1 4
    2 3
    3 4
    3 5
    
    예상 출력
    3
    
  2. 예제 2

    입력
    5 4 1 5
    1 2
    2 3
    3 4
    4 5
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    2 1 1 2
    1 2
    
    예상 출력
    3
    
  4. 예제 4

    입력
    3 3 1 2
    1 2
    1 3
    2 3
    
    예상 출력
    2