Problem
우리가 이름을 밝힐 수 없는 극비 조직 중 하나는
N
개의 지하 벙커 네트워크로 동일한 길이의 터널로 연결되어 있으며 이 터널을 통해 모든 벙커에서 다른 벙커로 이동할 수 있습니다( 반드시 직접적으로는 아님). 외부 세계와의 통신은 일부 벙커에 위치한 특수 비밀 출구를 통해 이루어집니다.
조직은 비상 시 직원 대피 계획을 작성해야 했습니다. 이렇게 하려면 각 벙커에 대해 가장 가까운 출구까지 걸리는 시간을 알아야 합니다. 이러한 작업의 전문가인 귀하는 극비 조직 구내에 대한 주어진 설명에 따라 각 벙커에 필요한 시간을 계산하도록 지시받습니다. 편의를 위해 벙커는
1
에서
N
까지 번호가 매겨져 있습니다.
입력:
- 처음 두 줄은 두 개의 자연수
N
,
K
를 포함합니다(
\(1 <= N <= 100000\) ,
\(1 <= K <= N\)) — 벙커의 수와 출구의 수;
- 세 번째 줄에는
1
에서
N
사이의 공백으로 구분된
K
숫자로 출구가 위치한 벙커의 번호를 나타냅니다.
- 네 번째 줄에는 숫자
M
(
\(1 <= M <= 100000\)) — 터널 수;
- 다음
M
에서 행은 숫자 쌍을 입력합니다 – 터널로 연결된 벙커의 수.
각 터널은 양방향으로 이동할 수 있습니다. 조직에는 벙커에서 자체로 이어지는 터널이 없지만 한 쌍의 벙커 사이에는 터널이 두 개 이상 있을 수 있습니다.
출력: 공백으로 구분된 숫자
N
개 인쇄 — 각 벙커에 대해 출구에 도달하는 데 필요한 최소 시간입니다. 하나의 터널을 통과하는 시간이
1
이라고 가정합니다.
예
<헤드>
<일>#일>
입력 |
출력 |
것>
<몸>
1 |
3
1
2
3
1 2
3 1
2 3
| 101 |
2 |
10
2
10 8
9
67
75
58
8 1
1 10
10 3
34
49
9 2 |
1 4 1 2 1 3 2 0 3 0 |
테이블>