QOJ.ac

QOJ

時間限制: 4.0 s 記憶體限制: 512 MB 總分: 100

#17603. SCHRONISKO

统计

W półmrocznym pokoju, około godziny 23:55, Milan usiadł przy trójnożnym stole i zaczął rozmyślać o ewentualnych konsekwencjach, jakie katastrofa nuklearna mogłaby wywołać w jego mieście. Jako burmistrz, Milan jest bardzo dobrze zaznajomiony ze wszystkimi istotnymi faktami.

Wie, że w jego mieście mieszka dokładnie $N$ ludzi i że każdy mieszkaniec żyje we własnym domu. Pomiędzy dokładnie $M$ parami domów istnieją drogi, a dla każdej drogi znany jest czas potrzebny na jej przebycie. Wreszcie, Milan wie, w których $K$ domach znajdują się schrony atomowe oraz ile osób mieści każdy z nich. Mając to na uwadze, Milana dręczy następujące pytanie: „Jaki jest minimalny czas potrzebny na ewakuację wszystkich mieszkańców tego miasta?”. Pomóż Milanowi odpowiedzieć na to pytanie.

Oczywiście ewakuacja zakłada, że każdy mieszkaniec dotrze do jakiegoś schronu atomowego. Można przyjąć, że mieszkańcy poruszają się optymalnie (najkrótszą drogą) oraz że wzdłuż jednej drogi może jednocześnie poruszać się wielu ludzi w potencjalnie różnych kierunkach. Można również założyć, że istnieje przynajmniej jedna droga pomiędzy każdymi dwoma domami przy użyciu pewnego podzbioru podanych dróg.

Wejście

W pierwszym wierszu znajdują się liczby naturalne $N$ ($1 \le N \le 100\,000$), $M$ ($1 \le M \le 300\,000$) oraz $K$ ($1 \le K \le 17$), które reprezentują liczbę mieszkańców, liczbę dróg oraz liczbę schronów atomowych. Domy są oznaczone numerami od $1$ do $N$.

W każdym z kolejnych $M$ wierszy znajdują się trzy liczby naturalne $A$, $B$ ($1 \le A, B \le N, A \neq B$) oraz $C$ ($1 \le C \le 10^9$), które oznaczają, że pomiędzy domami o numerach $A$ i $B$ znajduje się droga, której przebycie wymaga $C$ jednostek czasu.

W każdym z kolejnych $K$ wierszy znajdują się dwie liczby naturalne $X$ ($1 \le X \le N$) oraz $Y$ ($1 \le Y \le 10^9$), które oznaczają, że w domu o numerze $X$ znajduje się schron atomowy, w którym może schronić się co najwyżej $Y$ osób. Łączna pojemność wszystkich schronów będzie większa lub równa $N$.

Wyjście

W jedynym wierszu wypisz minimalny czas potrzebny na ewakuację wszystkich mieszkańców tego miasta.

Bodovanje

Podzadatak Liczba punktów Dodatkowe ograniczenia
1 30 $N \le 100, M \le 500, K \le 5$
2 30 $K \le 10$
3 40 brak dodatkowych ograniczeń

Przykład

Wejście 1

5 5 2
1 2 1
1 3 3
2 3 4
3 4 1
4 5 1
1 10
4 2

Wyjście 1

3

Uwagi

W 3 jednostki czasu osoby z domów nr 1, 2 i 3 mogą udać się do schronu w domu 1, a osoby z domów 4 i 5 do schronu w domu 4. W krótszym czasie nie wszystkie osoby mogą dotrzeć do schronów, ponieważ schron w domu 4 przyjmuje co najwyżej dwie osoby.

Wejście 2

7 8 3
1 2 5
2 3 3
3 4 5
1 4 1
4 5 7
5 6 2
6 7 1
4 7 4
3 3
7 3
6 2

Wyjście 2

5

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.