QOJ.ac

QOJ

実行時間制限: 10 s メモリ制限: 256 MB 満点: 100

#23849. Wyspa zombie

統計

Wyspa, na której mieszka JOI-kun, została najechana przez zombie. JOI-kun postanowił uciec do schronu wyznaczonego jako najbezpieczniejsze miejsce ewakuacji na wyspie.

Wyspa, na której mieszka JOI-kun, składa się z $N$ miast ponumerowanych od Miasta $1$ do Miasta $N$, a miasta są połączone drogami. Na wyspie znajduje się $M$ dróg, a każda droga łączy $2$ różne miasta. JOI-kun może swobodnie poruszać się drogami w obu kierunkach, ale nie może przemieszczać się z jednego miasta do drugiego inaczej niż drogami.

Niektóre miasta są opanowane przez zombie i nie można ich odwiedzać. Miasto, do którego można dotrzeć z miasta opanowanego przez zombie przy użyciu co najwyżej $S$ dróg, nazywamy niebezpiecznym miastem. Pozostałe miasta nazywamy niegroźnymi miastami.

Dom JOI-kuna znajduje się w Mieście $1$, a schron ewakuacyjny w Mieście $N$. Miasto $1$ oraz Miasto $N$ nie są opanowane przez zombie. Ponieważ podróżowanie drogami wyspy zajmuje dużo czasu, za każdym razem, gdy JOI-kun przemieszcza się do innego miasta, musi przenocować w mieście docelowym. Gdy JOI-kun nocuje w niegroźnym mieście, zatrzymuje się w tanimomo gospodzie, w której nocleg kosztuje $P$ jenów, natomiast gdy nocuje w niebezpiecznym mieście, zatrzymuje się w luksusowej gospodzie ze znakomitą ochroną, w której nocleg kosztuje $Q$ jenów. JOI-kun chce podróżować tak, aby koszt noclegów był jak najniższy, i ewakuować się do Miasta $N$. W Mieście $1$ oraz Mieście $N$ nie musi nocować.

Znajdź minimalny możliwy łączny koszt noclegów wymagany podczas podróży JOI-kuna z Miasta $1$ do Miasta $N$.

Wejście

Wejście składa się z $2 + K + M$ wierszy.

W $1$-szym wierszu znajdują się $4$ oddzielone spacjami liczby całkowite $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$). Oznacza to, że wyspa składa się z $N$ miast i $M$ dróg, $K$ spośród $N$ miast jest opanowanych przez zombie, a miasta osiągalne z miasta opanowanego przez zombie za pomocą co najwyżej $S$ dróg nazywane są niebezpiecznymi miastami.

W $2$-gim wierszu znajdują się $2$ oddzielone spacjami liczby całkowite $P, Q$ ($1 \le P < Q \le 100000$). Oznacza to, że w niegroźnym mieście JOI-kun zatrzymuje się w gospodzie kosztującej $P$ jenów, a w niebezpiecznym mieście w gospodzie kosztującej $Q$ jenów.

W $i$-tym wierszu ($1 \le i \le K$) spośród kolejnych $K$ wierszy znajduje się liczba całkowita $C_i$ ($2 \le C_i \le N - 1$). Oznacza to, że Miasto $C_i$ jest opanowane przez zombie. Liczby $C_1, \dots, C_K$ są parami różne.

W $j$-tym wierszu ($1 \le j \le M$) spośród kolejnych $M$ wierszy znajdują się $2$ oddzielone spacjami liczby całkowite $A_j, B_j$ ($1 \le A_j < B_j \le N$). Oznacza to, że między Miastem $A_j$ a Miastem $B_j$ istnieje droga. Ta sama para $(A_j, B_j)$ nie pojawia się $2$ lub więcej razy.

W podanych danych wejściowych gwarantowane jest, że można dotrzeć z Miasta $1$ do Miasta $N$, przechodząc wyłącznie przez miasta nieopanowane przez zombie.

Wyjście

Wypisz w $1$ wierszu minimalny możliwy łączny koszt noclegów wymagany podczas podróży JOI-kuna z Miasta $1$ do Miasta $N$.

Zwróć uwagę, że wynik może nie mieścić się w zakresie $32$-bitowej liczby całkowitej ze znakiem.

Przykłady

Wejście 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

Wyjście 1

11000

Uwaga 1

Przykład $1$ odpowiada poniższemu rysunkowi. Kółka oznaczają miasta, a linie oznaczają drogi.

problem_23849_bac2d8f5a931b2ef74845a3e75798198.png

W tym przypadku Miasto $3$, Miasto $4$, Miasto $6$, Miasto $8$ oraz Miasto $12$ są niebezpiecznymi miastami.

Przemieszczając się przez miasta w następującej kolejności, można zminimalizować łączny koszt noclegów:

  • Idź z Miasta $1$ do Miasta $2$. Przenocuj w taniej gospodzie za $1000$ jenów w Mieście $2$.
  • Idź z Miasta $2$ do Miasta $5$. Przenocuj w taniej gospodzie za $1000$ jenów w Mieście $5$.
  • Idź z Miasta $5$ do Miasta $9$. Przenocuj w taniej gospodzie za $1000$ jenów w Mieście $9$.
  • Idź z Miasta $9$ do Miasta $10$. Przenocuj w taniej gospodzie za $1000$ jenów w Mieście $10$.
  • Idź z Miasta $10$ do Miasta $11$. Przenocuj w taniej gospodzie za $1000$ jenów w Mieście $11$.
  • Idź z Miasta $11$ do Miasta $12$. Przenocuj w luksusowej gospodzie za $6000$ jenów w Mieście $12$.
  • Idź z Miasta $12$ do Miasta $13$. Nie nocuj w Mieście $13$.

Gdy JOI-kun podróżuje tą trasą, łączny koszt noclegów wynosi $11000$ jenów, więc należy wypisać $11000$.

Wejście 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

Wyjście 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.