QOJ.ac

QOJ

时间限制: 10 s 内存限制: 256 MB 总分: 100

#23849. Zombisaari

统计

Saari, jolla JOI-kun asuu, on joutunut zombien valtaamaksi. JOI-kun on päättänyt paeta väestönsuojaan, joka on määritelty saaren turvallisimmaksi evakuointipaikaksi.

Saari, jolla JOI-kun asuu, koostuu $N$ kaupungista, jotka on numeroitu Kaupungista $1$ Kaupunkiin $N$, ja kaupungit ovat yhteydessä toisiinsa teillä. Saarella on $M$ tietä, ja jokainen tie yhdistää $2$ eri kaupunkia. JOI-kun voi liikkua teitä pitkin vapaasti molempiin suuntiin, mutta hän ei voi kulkea kaupungista toiseen muuten kuin teitä pitkin.

Useat kaupungit ovat zombien hallussa, eikä niissä voi vierailla. Kaupunkia, johon voidaan päästä zombien hallitsemasta kaupungista käyttämällä enintään $S$ tietä, kutsutaan vaaralliseksi kaupungiksi. Muita kaupunkeja kutsutaan vaarattomiksi kaupungeiksi.

JOI-kunin koti on Kaupungissa $1$, ja evakuointisuoja on Kaupungissa $N$. Kaupunki $1$ ja Kaupunki $N$ eivät ole zombien hallussa. Koska saaren teillä liikkuminen vie kauan aikaa, JOI-kunin on yövyttävä kohdekaupungissa joka kerta, kun hän siirtyy kaupungista toiseen. Kun JOI-kun yöpyy vaarattomassa kaupungissa, hän majoittuu halpaan majataloon, jonka majoitusmaksu on $P$ jeniä, kun taas yöpyessään vaarallisessa kaupungissa hän majoittuu erinomaisilla turvapalveluilla varustettuun luksusmajataloon, jonka majoitusmaksu on $Q$ jeniä. JOI-kun haluaa matkustaa siten, että hänen majoituskulunsa ovat mahdollisimman pienet, ja evakuoitua Kaupunkiin $N$. Hänen ei tarvitse yöpyä Kaupungissa $1$ eikä Kaupungissa $N$.

Etsi pienin mahdollinen majoitusmaksujen kokonaissumma, joka tarvitaan, kun JOI-kun matkustaa Kaupungista $1$ Kaupunkiin $N$.

Syöte

Syöte koostuu $2 + K + M$ rivistä.

$1$. rivi sisältää $4$ välilyönnein erotettua kokonaislukua $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$). Tämä tarkoittaa, että saari koostuu $N$ kaupungista ja $M$ tiestä, $K$ kaupunkia $N$ kaupungista on zombien hallussa, ja kaupunkeja, joihin pääsee zombien hallitsemasta kaupungista enintään $S$ tietä pitkin, kutsutaan vaarallisiksi kaupungeiksi.

$2$. rivi sisältää $2$ välilyönnein erotettua kokonaislukua $P, Q$ ($1 \le P < Q \le 100000$). Tämä tarkoittaa, että JOI-kun yöpyy vaarattomassa kaupungissa $P$ jenin majatalossa ja vaarallisessa kaupungissa $Q$ jenin majatalossa.

Seuraavien $K$ rivin $i$. rivi ($1 \le i \le K$) sisältää kokonaisluvun $C_i$ ($2 \le C_i \le N - 1$). Tämä tarkoittaa, että Kaupunki $C_i$ on zombien hallussa. $C_1, \dots, C_K$ ovat kaikki eri suuria.

Seuraavien $M$ rivin $j$. rivi ($1 \le j \le M$) sisältää $2$ välilyönnein erotettua kokonaislukua $A_j, B_j$ ($1 \le A_j < B_j \le N$). Tämä tarkoittaa, että Kaupungin $A_j$ ja Kaupungin $B_j$ välillä on tie. Sama pari $(A_j, B_j)$ ei esiinny $2$ tai useampaa kertaa.

Annetussa syötteessä taataan, että Kaupungista $1$ Kaupunkiin $N$ on mahdollista matkustaa kulkemalla vain sellaisten kaupunkien kautta, jotka eivät ole zombien hallussa.

Tuloste

Tulosta $1$ riville pienin mahdollinen majoitusmaksujen kokonaissumma, joka tarvitaan, kun JOI-kun matkustaa Kaupungista $1$ Kaupunkiin $N$.

Huomaa, että tuloste ei välttämättä mahdu $32$-bittisen etumerkillisen kokonaisluvun arvoalueelle.

Esimerkit

Syöte 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

Tuloste 1

11000

Selitys 1

Esimerkki $1$ vastaa alla olevaa kuvaa. Ympyrät esittävät kaupunkeja ja viivat teitä.

problem_23849_bac2d8f5a931b2ef74845a3e75798198.png

Tässä tapauksessa Kaupunki $3$, Kaupunki $4$, Kaupunki $6$, Kaupunki $8$ ja Kaupunki $12$ ovat vaarallisia kaupunkeja.

Liikkumalla kaupunkien läpi seuraavassa järjestyksessä majoitusmaksujen kokonaissumma voidaan minimoida:

  • Siirry Kaupungista $1$ Kaupunkiin $2$. Yövy Kaupungissa $2$ halpaan $1000$ jenin majataloon.
  • Siirry Kaupungista $2$ Kaupunkiin $5$. Yövy Kaupungissa $5$ halpaan $1000$ jenin majataloon.
  • Siirry Kaupungista $5$ Kaupunkiin $9$. Yövy Kaupungissa $9$ halpaan $1000$ jenin majataloon.
  • Siirry Kaupungista $9$ Kaupunkiin $10$. Yövy Kaupungissa $10$ halpaan $1000$ jenin majataloon.
  • Siirry Kaupungista $10$ Kaupunkiin $11$. Yövy Kaupungissa $11$ halpaan $1000$ jenin majataloon.
  • Siirry Kaupungista $11$ Kaupunkiin $12$. Yövy Kaupungissa $12$ $6000$ jenin luksusmajataloon.
  • Siirry Kaupungista $12$ Kaupunkiin $13$. Älä yövy Kaupungissa $13$.

Kun JOI-kun kulkee tätä reittiä, majoitusmaksujen kokonaissumma on $11000$ jeniä, joten tulostetaan $11000$.

Syöte 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

Tuloste 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.