IX Olimpiada Informatyczna 2001/2002

Zadanie: kur
Autor: Marcin Sawicki
Kurort narciarski

Zawody II stopnia, dzień drugi  
Plik źródłowy: kur.??? (np. pas, c, cpp)
Plik wejściowy: kur.in
Plik wyjściowy: kur.out

W Bajtogórach znajduje się kurort narciarski Bajtyrk słynący z narciarskich tras biegowych. Są one bardzo malownicze, gdyż część z nich jest położona wysoko w górach lub w trudno dostępnych miejscach. Użytkownicy tras często korzystają z wyciągów ułatwiających dotarcie do niektórych z nich. Każdy wyciąg i każda trasa zaczyna się i kończy na określonej polanie. Trasy narciarskie nie mogą się przecinać, ale mogą przebiegać naturalnymi skalnymi tunelami i estakadami.

Trasy narciarskie mogą być jednokierunkowe lub dwukierunkowe. Podobnie, niektóre wyciągi (kolejki linowe) mogą być jedno lub dwukierunkowe.

Za korzystanie z wyciągów płaci się kartą magnetyczną. Karty kupuje się w kasach. Każda karta zawiera określoną liczbę punktów. Skorzystanie z każdego z wyciągów wiąże się z utratą pewnej liczby punktów zależnej od wyciągu. Niestety kasy nie zwracają pieniędzy za niewykorzystane punkty.

Bajtoni jest dziś na nartach ostatni dzień. Została mu jedna karta z pewną liczbą punktów, które chciałby wykorzystać do maksimum. Możesz założyc, że ta liczba punktów wystarczy na powrót do Bajtyrku.

Zadanie

Napisz program, który:

Wejście

W pierwszym wierszu pliku tekstowego kur.in zapisane są dwie dodatnie liczby całkowite n i n', 1 <= n' < n <= 1000, oddzielone pojedynczym odstępem, oznaczające odpowiednio liczbę wszystkich polan oraz liczbę tych polan, które znajdują się na dole w samym Bajtyrku (są to polany o numerach od 1 do n' włącznie).

W drugim wierszu zapisana jest jedna dodatnia liczba całkowita k, 1 <= k <= 5000, równa łącznej liczbie wszystkich tras narciarskich. Każdy z kolejnych k wierszy zawiera po dwie różne dodatnie liczby całkowite, pooddzielane pojedynczymi odstępami, 1 <= p1 <> p2 < n. Liczby te oznaczają numer początkowej i końcowej polany danej trasy narciarskiej. Trasy dwukierunkowe są tu liczone dwukrotnie i reprezentowane w pliku wejściowym przez dwa (niekoniecznie kolejne) wiersze (postaci "p1 p2" i "p2 p1").

W k+3-cim wierszu zapisana jest jedna dodatnia liczba całkowita m, 1 <= m <= 300, równa liczbie wszystkich wyciągów. W kolejnych m wierszach opisane są wyciągi. W każdym z tych wierszy zapisane są trzy dodatnie liczby całkowite q1, q2 i r, pooddzielane pojedynczymi odstępami. Liczby q1 i q2 oznaczają odpowiednio numer polany, na której wyciąg się zaczyna i numer polany, na której się kończy, 1 <= q1 <> q2 <= n. Liczba r jest równa liczbie punktów, które trzeba zapłacić za przejazd wyciągiem, 1 <= r <= 1000. Wyciągi dwukierunkowe (kolejki linowe) są tu liczone dwukrotnie i reprezentowane w pliku wejściowym przez dwa (niekoniecznie kolejne) wiersze (postaci "q1 q2 r1" i "q2 q1 r2"). Ceny przejazdu wyciągiem w jedną i w drugą stronę mogą być różne.

W ostatnim wierszu zapisane są dwie dodatnie liczby całkowite b i s, oddzielone pojedynczym odstępem, 1 <= b <= n, 1 <= s <= 2000. Pierwsza z nich oznacza numer polany, na której znajduje się Bajtoni a druga jest równa liczbie punktów na jego ostatniej karcie magnetycznej.

Wyjście

Twój program powinien zapisać w pierwszym (i jedynym) wierszu pliku tekstowego kur.out jedną liczbę całkowitą, równą najmniejszej możliwej liczbie punktów, z jaką Bajtoni może wrócić do Bajtyrku.

Przykład

Dla pliku wejściowego kur.in:

5 2
6
3 2
3 5
1 5
3 4
1 2
4 3
4
3 1 1
4 3 5
5 2 2
3 4 5
4 9
poprawną odpowiedzią jest plik wyjściowy kur.out:
1