만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

고슴도치 허리

면접 대비

시간 제한5초메모리 제한2048 MB

요약
1번 교차로에서 n번 교차로까지 가는 경로 중 모든 교차로에 슈퍼 버섯이 있는 가장 짧은 경로를 찾고, 그 경로의 교차로 개수를 출력합니다.
난이도

쉬움10점 중 3점

유형
BFS, 그래프
정답자
아직 제출이 없습니다

문제

Hurry는 버섯 왕국에 사는 고슴도치다. 그는 악당 Donkey Kong에게 잡힌 Plum 공주를 구하러 간다. 공주에게 가려면 Hurry가 하이퍼스페이스 도로망을 달려야 한다. 이 도로는 위험하다. 두 교차로 사이의 도로를 하나 지날 때마다 Space Invaders의 공격을 받는다. 일부 교차로에는 Hurry의 체력을 회복시켜 주는 슈퍼 버섯이 있다.

경로에 있는 모든 교차로에서 슈퍼 버섯을 먹을 수 있도록 도로망에서 가장 짧은 경로를 찾아라.

입력

교차로는 11부터 nn까지 번호가 매겨져 있다. Hurry는 교차로 11에서 출발하여 교차로 nn까지 달려야 한다.

입력은 다음과 같다.

  • 정수 3개가 한 줄에 주어진다: 1≤n≤1051 \leq n \leq 10^5는 교차로의 수, 0≤m≤1060 \leq m \leq 10^6은 도로의 수, 1≤s≤n1 \leq s \leq n은 슈퍼 버섯의 수이다.
  • max⁡(0,s−2)\max(0, s-2)개의 정수가 한 줄에 주어진다: 슈퍼 버섯이 있는 교차로의 번호이다. 교차로 11과 nn에는 항상 슈퍼 버섯이 있으므로 이 목록에는 없다.
  • 정수 2개씩 mm줄에 걸쳐 주어지며, 각 줄은 해당 번호의 두 교차로 사이에 도로가 있음을 뜻한다.

출력

Hurry가 달려야 하는 경로에 포함된 교차로의 개수를 한 줄에 정수 하나로 출력한다.

예제2

  1. 예제 1

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

    입력
    6 6 6
    2 3 4 5
    1 2
    2 6
    1 3
    3 4
    4 5
    5 6
    
    예상 출력
    3