QOJ.ac

QOJ

Time Limit: 10 s Memory Limit: 256 MB Total points: 100

#23849. Остров зомби

Statistics

Остров, на котором живет JOI-кун, подвергся нашествию зомби. JOI-кун решил бежать в убежище, назначенное самым безопасным местом эвакуации на острове.

Остров, на котором живет JOI-кун, состоит из $N$ городов, пронумерованных от Города $1$ до Города $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$ дорог, $K$ из $N$ городов захвачены зомби, а города, достижимые из захваченных зомби городов не более чем по $S$ дорогам, называются опасными городами.

Во $2$-й строке записаны через пробел $2$ целых числа $P, Q$ ($1 \le P < Q \le 100000$). Это означает, что в неопасном городе JOI-кун останавливается в гостинице стоимостью $P$ иен, а в опасном городе — в гостинице стоимостью $Q$ иен.

В $i$-й строке ($1 \le i \le K$) из следующих $K$ строк записано целое число $C_i$ ($2 \le C_i \le N - 1$). Это означает, что Город $C_i$ захвачен зомби. Все $C_1, \dots, C_K$ различны.

В $j$-й строке ($1 \le j \le M$) из следующих $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$ можно добраться, проходя только через города, не захваченные зомби.

Выходные данные

Выведите в $1$ строке минимально возможную общую стоимость проживания при перемещении JOI-куна из Города $1$ в Город $N$.

Обратите внимание, что ответ может не помещаться в диапазон $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$ не ночевать.

При таком маршруте общая стоимость проживания составит $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.