QOJ.ac

QOJ

حد الوقت: 10 s حد الذاكرة: 256 MB مجموع النقاط: 100

#23849. 좀비 섬

الإحصائيات

JOI 군이 살고 있는 섬이 좀비에게 침략당하고 말았다. JOI 군은 섬에서 가장 안전한 대피소로 설정된 셸터로 도망치기로 했다.

JOI 군이 살고 있는 섬은 마을 $1$부터 마을 $N$까지의 $N$개의 마을로 이루어져 있으며, 마을과 마을은 도로로 연결되어 있다. 섬에는 $M$개의 도로가 있으며, 모든 도로는 서로 다른 $2$개의 마을을 연결한다. JOI 군은 도로를 양방향으로 자유롭게 이동할 수 있지만, 도로 이외의 경로를 통해 한 마을에서 다른 마을로 갈 수는 없다.

몇몇 마을은 좀비에게 지배당하고 있어 방문할 수 없다. 좀비에게 지배당하고 있는 마을에서 $S$개 이하의 도로를 사용하여 도달할 수 있는 마을을 위험한 마을이라고 한다. 그 외의 마을을 위험하지 않은 마을이라고 한다.

JOI 군의 집은 마을 $1$에 있고, 대피처인 셸터는 마을 $N$에 있다. 마을 $1$과 마을 $N$은 좀비에게 지배당하지 않았다. 섬의 도로는 이동하는 데 시간이 걸리므로, JOI 군은 마을을 이동할 때마다 이동한 목적지 마을에서 하룻밤 숙박해야 한다. JOI 군은 위험하지 않은 마을에서 숙박할 때는 숙박비가 $P$엔인 저렴한 숙소에 묵지만, 위험한 마을에서 숙박할 때는 보안 서비스가 우수한 숙박비가 $Q$엔인 고급 숙소에 묵는다. JOI 군은 가능한 한 숙박비가 적게 들도록 이동하여 마을 $N$까지 대피하고 싶다. 마을 $1$이나 마을 $N$에서는 숙박할 필요가 없다.

JOI 군이 마을 $1$에서 마을 $N$까지 이동할 때 필요한 숙박비 합의 최솟값을 구하여라.

입력

입력은 $2 + K + M$줄로 이루어진다.

$1$번째 줄에는 $4$개의 정수 $N, M, K, S$ ($2 \le N \le 100000$, $1 \le M \le 200000$, $0 \le K \le N - 2$, $0 \le S \le 100000$)가 공백으로 구분되어 주어진다. 이는 섬이 $N$개의 마을과 $M$개의 도로로 이루어져 있고, $N$개의 마을 중 $K$개의 마을이 좀비에게 지배당하고 있으며, 좀비에게 지배당하고 있는 마을에서 $S$개 이하의 도로를 사용하여 도달할 수 있는 마을을 위험한 마을이라 부름을 나타낸다.

$2$번째 줄에는 $2$개의 정수 $P, Q$ ($1 \le P < Q \le 100000$)가 공백으로 구분되어 주어진다. 이는 JOI 군이 위험하지 않은 마을에서는 숙박비가 $P$엔인 숙소에 묵고, 위험한 마을에서는 숙박비가 $Q$엔인 숙소에 묵음을 나타낸다.

이어지는 $K$개의 줄 중 $i$번째 줄 ($1 \le i \le K$)에는 정수 $C_i$ ($2 \le C_i \le N - 1$)가 주어진다. 이는 마을 $C_i$가 좀비에게 지배당하고 있음을 나타낸다. $C_1, \dots, C_K$는 모두 다르다.

이어지는 $M$개의 줄 중 $j$번째 줄 ($1 \le j \le M$)에는 $2$개의 정수 $A_j, B_j$ ($1 \le A_j < B_j \le N$)가 공백으로 구분되어 주어진다. 이는 마을 $A_j$와 마을 $B_j$ 사이에 도로가 존재함을 나타낸다. 같은 $(A_j, B_j)$ 쌍이 $2$번 이상 주어지는 경우는 없다.

주어지는 입력 데이터에서는 마을 $1$에서 마을 $N$까지 좀비에게 지배당하지 않은 마을만을 거쳐 이동할 수 있음이 보장된다.

출력

JOI 군이 마을 $1$에서 마을 $N$까지 이동할 때 필요한 숙박비 합의 최솟값을 $1$줄로 출력하여라.

출력이 $32$비트 부호 있는 정수의 범위에 들어가지 않을 수 있음에 주의하여라.

예제

예제 입력 1

13 21 1 1
1000 6000
7
1 2
3 7
2 4
5 8
8 9
2 5
3 4
4 7
9 10
10 11
5 9
7 12
3 6
4 5
1 3
11 12
6 7
8 11
6 13
7 8
12 13

예제 출력 1

11000

예제 설명 1

예제 $1$은 아래 그림에 대응한다. 원은 마을을, 선은 도로를 나타낸다.

problem_23849_bac2d8f5a931b2ef74845a3e75798198.png

이 경우 마을 $3$, 마을 $4$, 마을 $6$, 마을 $8$, 마을 $12$가 위험한 마을이다.

다음과 같은 순서로 마을을 이동하면 숙박비의 합을 최소로 할 수 있다.

  • 마을 $1$에서 마을 $2$로 간다. 마을 $2$에서 숙박비가 $1000$엔인 저렴한 숙소에 숙박한다.
  • 마을 $2$에서 마을 $5$로 간다. 마을 $5$에서 숙박비가 $1000$엔인 저렴한 숙소에 숙박한다.
  • 마을 $5$에서 마을 $9$로 간다. 마을 $9$에서 숙박비가 $1000$엔인 저렴한 숙소에 숙박한다.
  • 마을 $9$에서 마을 $10$으로 간다. 마을 $10$에서 숙박비가 $1000$엔인 저렴한 숙소에 숙박한다.
  • 마을 $10$에서 마을 $11$로 간다. 마을 $11$에서 숙박비가 $1000$엔인 저렴한 숙소에 숙박한다.
  • 마을 $11$에서 마을 $12$로 간다. 마을 $12$에서 숙박비가 $6000$엔인 고급 숙소에 숙박한다.
  • 마을 $12$에서 마을 $13$으로 간다. 마을 $13$에서는 숙박하지 않는다.

JOI 군이 이러한 경로로 이동했을 때 숙박비의 합은 $11000$엔이 되므로, $11000$을 출력한다.

예제 입력 2

21 26 2 2
1000 2000
5
16
1 2
1 3
1 10
2 5
3 4
4 6
5 8
6 7
7 9
8 10
9 10
9 11
11 13
12 13
12 15
13 14
13 16
14 17
15 16
15 18
16 17
16 19
17 20
18 19
19 20
19 21

예제 출력 2

15000

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.