Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Taksówkarz
(G)
Limit pamięci: 64 MB
Limit czasu: 15.00 s

Przejechawszy całą Drogę Panamerykańską, Karol zawrócił i pojechał do Nowego Jorku, gdzie, zaintrygowany niezwykłą regularnością układu tamtejszych ulic, postanowił zostać taksówkarzem.

Na telefonie Karola działa aplikacja Taxi Driver, która pokazuje mu dostępne zlecenia opisane punktem początkowym, końcowym i zapłatą w dolarach za wykonanie kursu. Nowy Jork jest na tyle dużym miastem, że nawet jeśli Karol wykona jakieś zlecenie, to po chwili i tak znajdzie się kolejna osoba, która potrzebuje przejechać tę samą trasę za tę samą opłatę – innymi słowy zlecenia nie wygasają.

Dla uproszczenia przyjmujemy, że interesujący Karola fragment Nowego Jorku to sieć ulic, z których każde dwie są równoległe lub prostopadłe i każde dwie sąsiednie równoległe ulice są od siebie oddalone o 1 km, a ponadto początek i koniec każdego zlecenia to skrzyżowanie dwóch ulic. Przyjmiemy więc układ współrzędnych, w którym (x,y) to skrzyżowanie x-tej ulicy w kierunku północ-południe z y-tą ulicą w kierunku wschód-zachód. W szczególności odległość między punktem (x,y) i punktem (x′,y′) to |xx′| + |yy′| kilometrów.

Przejechanie jednego kilometra zawsze kosztuje Karola 1 dolara, a jego dzień pracy zaczyna się w punkcie (1,1) i kończy w punkcie (XK,YK), co oznacza, że Karol może być danego dnia stratny, bo i tak musi przejechać z (1,1) do (XK,YK).

Jaki największy zysk może osiągnąć Karol? Czy Karol może wybierać zlecenia tak, by zarobić dowolnie dużo?

Napisz program, który wczyta opis zleceń dostępnych w aplikacji Taxi Driver, wyznaczy optymalny scenariusz jazdy dla Karola i wypisze maksymalny zysk na standardowe wyjście lub poinformuje, że Karol może zarobić dowolnie dużo.

Wejście

W pierwszym wierszu wejścia znajdują się trzy dodatnie liczby całkowite N, XK, YK, pooddzielane pojedynczymi odstępami i oznaczające kolejno: liczbę zleceń dostępnych w aplikacji Taxi Driver i położenie punktu końcowego.

W każdym z kolejnych N wierszy wejścia znajduje się pięć dodatnich liczb całkowitych XS, i, YS, i, XE, i, YE, i, Zi, pooddzielanych pojedynczymi odstępami i oznaczających, że istnieje zlecenie przewozu z punktu (XS, i,YS, i) do punktu (XE, i,YE, i), za które Karol otrzyma Zi dolarów.

Wyjście

Jeśli Karol może uzyskać dowolnie duży zysk, to w jedynym wierszu wyjścia powinno znaleźć się słowo KREZUS.

W przeciwnym razie, w jedynym wierszu wyjścia powinna znaleźć się jedna liczba całkowita określająca maksymalny zysk Karola w dolarach.

Ograniczenia

1 ≤ N ≤ 2 000, 1 ≤ X⋅,i, Y⋅,i, XK, YK ≤ 1 000 000, 1 ≤ Zi ≤ 10 000 000.

Przykład

Wejście Wyjście Wyjaśnienie
1 10 10
4 3 7 8 10
-8

Karol wykona jedyne zlecenie.

Wejście Wyjście Wyjaśnienie
1 5 3
10 10 20 20 25
-6

Karolowi nie opłaca się wykonywać zlecenia, więc pojedzie wprost z punktu początkowego do końcowego.

Wejście Wyjście Wyjaśnienie
2 3 4
2 2 8 3 12
6 2 4 5 9
KREZUS

Karol może zyskać dowolnie dużo wykonując zlecenia naprzemiennie.

Wejście Wyjście Wyjaśnienie
3 8 6
5 5 4 10 9
5 8 8 5 9
2 2 5 4 8
2

Karol może zyskać co najwyżej dwa dolary, wypełniając kolejno zlecenia nr 3, nr 1, nr 2.