Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
AL_15_06 - Windy |
Jan skończył studia z wyróżnieniem, a starty w licznych konkursach programistycznych pozwoliły mu znaleźć wymarzoną pracę... jest programistą w korporacji ;-) Właśnie poszedł na pierwszy w swojej karierze urlop i już pierwszego dnia uświadomił sobie, że przez roztargnienie zapomniał się wylogować na służbowym laptopie. Chciałby wrócić do firmy niepostrzeżenie i naprawić swój błąd jednak bardzo obawia się spotkania z szefem, który zapewne będzie zadawać wiele niewygodnych pytań. Nasz bohater ma swoje przypuszczenia odnośnie tego na których piętrach jego szef może przebywać o danej porze. Jan zdążył również zapamiętać sposób funkcjonowania wind w budynku i zna wszystkie połączenia pomiędzy piętrami. Nasz bohater postanowił, że napisze program który obliczy najkrótszy czas w jakim może znaleźć się na swoim piętrze, nie spotkawszy po drodze szefa. Napisz program za Jana stosując się do następujących zasad:
- Budynek posiada n pięter i jest otwarty przez 480 minut numerowanych od 0.
- Jan zjawi się w budynku na piętrze 0 o czasie 0.
- Nasz bohater musi się dostać na piętro k.
- Przejechanie jednego piętra trwa równo minutę.
- Nie można wjechać na piętro jeżeli aktualnie znajduje się na nim szef, można to zrobić najwcześniej sekundę po tym jak je opuści.
- Dozwolone jest czekanie na piętrze.
- Przesiadanie się pomiędzy windami na danym piętrze jest pomijalnie krótkie.
Wejście
W pierwszej linii wejścia znajdują się cztery liczby całkowite n, k, p oraz s (1 ≤ n ≤ 100, 0 ≤ k < n, 1 ≤ p ≤ 600, 1 ≤ s < 400) oznaczające odpowiednio liczbę pięter w budynku, piętro na które Jan musi się dostać, liczbę połączeń między piętrami oraz liczbę przypuszczeń dotyczących tego gdzie może przebywać szef. W kolejnych p liniach znajdują się opisy połączeń pomiędzy piętrami. Każdy opis składa się z dwóch liczb a i b (0 ≤ a, b < n) określających pomiędzy, którymi piętrami kursuje dana winda. Uwaga! Winda zatrzymuje się tylko na piętrach a i b. W następnych s liniach znajdują się przypuszczenia odnośnie lokalizacji szefa. Każdy opis składa się z 3 liczb nr, t1, t2 oznaczających, że od minuty t1 do minuty t2 włącznie szef może się znajdować na piętrze numer nr.
Wyjście
Wypisz NIE jeżeli nie jest możliwe dotarcie na k-te piętro bez spotkania szefa albo TAK <minimalny_czas> w przeciwnym wypadku.
Przykład
Wejście
5 2 3 2 0 2 0 3 2 3 2 2 4 1 3 400
Wyjście
TAK 5
Dodane przez: | Maciej Boniecki |
Data dodania: | 2014-03-29 |
Limit czasu wykonania programu: | 0.5s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU |
Pochodzenie: | ALGOLIGA |