Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Tej nocy Karol śnił wyjątkowo dobrze, bowiem odwiedziło go mnóstwo snów przygodowych, a każdy z nich był wypchany wrażeniami z egzotycznego kraju. Karol nie wierzył w takie rzeczy jak przeznaczenie objawione we śnie. Nie mniej jednak sam pomysł kilku wyszukanych podróży zdecydowanie przypadł mu do gustu. Znany ze swojej gotowości do działania, już następnego ranka był w Pekinie i tak właśnie zaczęły się przygody podróżnika Karola.
Karol, przechadzając się po typowo azjatyckich parkach, dostrzegł, że sporo młodzieży przesiaduje w licznych grupkach, pochłoniętych rozgrywką w pewną chińską grę. Chcąc zapewnić sobie trochę rozrywki intelektualnej, nasz podróżnik przysiadł na ławce i przyglądał się uważnie rozgrywce.
Gra sama w sobie okazała się dość prosta, należy się przede wszystkim zaopatrzyć w karty i figurki przedstawiające rozmaite potworki, a następnie wystawić jedną ze swoich figurek na karcie i porównać jej moc z mocą figurki wystawionej przez przeciwnika. Formalne zasady gry brzmią następująco:
- wygrywa gracz, którego moc wystawionej figurki jest większa;
- każdy potworek ma swoją moc M i jeden z czterech żywiołów T:
W
– woda,O
– ogień,P
– powietrze,Z
– ziemia; - opis każdej karty składa się z bonusów dla każdego z czterech żywiołów;
- karta wzmacnia lub osłabia potworka, który na niej stoi, zwiększając lub zmniejszając jego moc zgodnie z bonusem przynależnym jego żywiołowi;
- dodatkowo, niektóre z żywiołów dominują nad innymi, dokładnie: woda dominuje nad ogniem, ogień dominuje nad powietrzem, powietrze dominuje nad ziemią, a ziemia dominuje nad wodą;
- gdy potworek walczy z przeciwnikiem, którego dominuje żywiołem, to jego moc i bonus są podwajane.
Karol zdążył się już zaopatrzyć w rozkładane figurki potworki i całkiem pokaźną talię kart. Już za chwilę dołączy do rozgrywki i zmierzy się ze swoim pierwszym przeciwnikiem – Quangiem. By mieć zwycięstwo w kieszeni postanowił przygotować sobie program, który po wczytaniu opisów potworków i kart, na których stoją, szybko wyznaczy wynik pojedynku. Tutaj cały plan “wziął w łeb”, bo podczas pospiesznego pakowania się Karol zapomniał spakować laptopa, tak więc to Twoim zadaniem będzie napisanie programu dla naszego podróżnika.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba całkowita MK i jedna litera TK, oddzielone pojedynczym odstępem i oznaczające odpowiednio moc potworka Karola oraz jego żywioł. W drugim wierszu wejścia znajdują się cztery liczby całkowite WK, OK, PK i ZK, oznaczające odpowiednio bonusy karty, na której stoi figurka Karola dla żywiołów woda, ogień, powietrze i ziemia.
W trzecim wierszu wejścia znajduje się jedna liczba całkowita MQ i jedna litera TQ, oddzielone pojedynczym odstępem i oznaczające odpowiednio moc potworka przeciwnika Karola oraz jego żywioł. W czwartym wierszu wejścia znajdują się cztery liczby całkowite WQ, OQ, PQ i ZQ, oznaczające odpowiednio bonusy karty, na której stoi figurka Quanga – przeciwnika Karola dla żywiołów woda, ogień, powietrze i ziemia.
Wyjście
W pierwszym i jedynym wierszu wyjścia powinno się znaleźć jedno słowo
WYGRANA
, PRZEGRANA
lub REMIS
, w
zależności od rezultatu pojedynku.
Ograniczenia
− 106 ≤ MK, WK, OK, PK, ZK, MQ, WQ, OQ, PQ, ZQ ≤ 106,
TK, TQ ∈ {W
, O
, P
, Z
}.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Potworek wystawiony przez Karola jest żywiołu wody, ma 60 punktów i stoi na karcie, która potworkom o żywiole wody dodaje 80 punktów. Potworek wystawiony przez Quanga jest żywiołu wody, ma 80 punktów i stoi na karcie, która zwiększa jego moc o 20 punktów. W efekcie potworek Karola, mając sumarycznie 140 punktów mocy, zwycięży z rywalem, który sumarycznie będzie miał 100 punktów mocy. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Potworek wystawiony przez Karola jest żywiołu powietrze, ma 200 punktów i stoi na karcie, która zwiększa jego moc o 100 punktów. Potworek wystawiony przez Quanga jest żywiołu ogień, ma 140 punktów i stoi na karcie, która zwiększa jego moc o 20 punktów. Potworek Karola będzie miał sumarycznie 300 punktów, a potworek Quanga 160, biorąc jednak pod uwagę, że żywioł ogień dominuje nad żywiołem powietrze, moc i bonus potworka Quanga są podwojone i wynoszą sumarycznie 320 punktów, przez co Karol ostatecznie przegrywa pojedynek. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Potworek wystawiony przez Karola jest żywiołu ziemia, ma 100 punktów i stoi na karcie, która potworkom o żywiole ziemia dodaje 20 punktów. Potworek wystawiony przez Quanga jest żywiołu ogień, ma 140 punktów i stoi na karcie, która zmniejsza jego moc o 20 punktów. Oba potworki będą miały sumarycznie 120 punktów, przez co pojedynek zakończy się remisem. |
Po wizycie w Pekinie Karol za następny cel podróży obrał sobie Dubaj. W Dubaju jest bowiem najwyższy budynek na świecie, w którym jest najdłuższa na świecie winda i to właśnie ona szczególnie zainteresowała Karola – stał więc cały dzień w głównym holu budynku, obserwując wyświetlacz zamontowany nad drzwiami do windy, i zapisywał sobie numery pięter, na których kolejno stawała rzeczona winda.
Karol chciałby się dowiedzieć ile razy winda zmieniła swój zwrot ruchu, czyli ile razy z jazdy w górę przeszła do jazdy w dół lub odwrotnie.
Po całym dniu obserwowania windy Karol jest już zmęczony i poprosił Cię o pomoc w rozwiązaniu tej zagadki.
Napisz program, który wczyta numery pięter, na których kolejno stawała winda, wyznaczy ile razy zmieniła zwrot ruchu i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajduje się dodatnia liczba całkowita N oznaczająca liczbę numerów pięter zapisanych przez Karola. W drugim wierszu wejścia znajduje się N nieujemnych liczb całkowitych A1, A2, …, AN pooddzielanych pojedynczymi odstępami i oznaczających kolejne numery pięter, na których stawała winda.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna nieujemna liczba całkowita oznaczająca ile razy winda zmieniła zwrot ruchu.
Ograniczenia
1 ≤ N ≤ 1 000 000, 0 ≤ Ai ≤ 109, Ai ≠ Ai + 1 dla wszystkich i < N.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Winda zmieniła zwrot ruchu po zatrzymaniu się na trzecim i siódmym piętrze. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Winda nie zmieniła zwrotu ruchu – cały czas jechała w dół. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Winda zmieniła zwrot ruchu po trzecim, czwartym, piątym i szóstym zatrzymaniu. |
Po przygodzie w znanej na cały świat krainie hazardu podróżnik Karol postanowił wybrać się do miejsc trochę bliższych kolebce ludzkości. Nic więc dziwnego, że zdecydował się na podróż do Kairu, by podziwiać tam słynne piramidy. Dotarł na miejsce w samo południe, gdy słońce górowało, a upalne powietrze było nie do wytrzymania.
Podróżnik nie mógł oprzeć się pokusie podejścia do antycznych grobowców trochę bliżej, niż jest to dozwolone. Oczywiście jego decyzje były wtedy ułatwiane przez srogi żar z nieba, a chęć odetchnięcia w niewielkim cieniu piramidy niezwykle kusiła. Pech chciał, że pod wpływem gorąca Karol stracił czujność i gdy podchodził do piramidy, spadł do niewielkiej groty przy niej. Oczywiście nic mu się nie stało, a wręcz przeciwnie, grota sprawiała wrażenie, jakby nikogo w niej nie było od setek lat – miała więc dla podróżnika ogromną wartość turystyczną.
Wieczorem, po powrocie do luksusowego hotelu, gdy Karol przeglądał
zdjęcia z groty pod piramidami, ujrzał specyficznie wyglądające
hieroglify i z braku lepszego zajęcia spróbował rozszyfrować ich
znaczenie. Uczynił już spore postępy – udało mu się częściowo
rozszyfrować wiadomość tak, że składała się z wystąpień jedynie dwóch
liter: H
i Y
. Niestety tutaj kończą się dobre
wiadomości – oświetlenie w hotelu było złe, łóżko zbyt mało luksusowe,
ogólnie wszystko było nie takie, jakie być powinno, a brak laptopa
zdecydowanie nie pomagał w tej sytuacji. Przez to zaszyta w hieroglifach
wiadomość nie dała się do końca rozszyfrować. Na szczęście dzięki
dogłębnej analizie podróżnik wie, że pomylił się na dokładnie jednej
pozycji wiadomości i zamienił H
na Y
lub
Y
na H
. Do tego Karol wie nawet, w jaki
dokładnie sposób wyznaczyć miejsce pomyłki, niestety bez komputera nie
będzie to takie proste. Miejscem pomyłki będzie taka skrajnie
lewa pozycja, że zamiana litery na niej, zmaksymalizuje liczbę
wystąpień podciągu HY
. Dla przypomnienia, mając dany napis,
jego podciąg może być uzyskany poprzez zmazanie z niego pewnej liczby
liter i odczytanie pozostałych liter od lewej do prawej. Na przykład,
słowo HYHY
zawiera 3 podciągi HY
– złożone
odpowiednio z pierwszej i drugiej litery, pierwszej i czwartej litery
oraz trzeciej i czwartej litery.
Twoim zadaniem będzie napisanie programu, który wyznaczy pozycję
błędu i poda Karolowi już poprawioną wiadomość – taką o
zmaksymalizowanej liczbie wystąpień podciągu HY
. Karol
będzie już wtedy wiedział jak dokończyć rozszyfrowanie wiadomości.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, oznaczająca długość wiadomości do
korekty. W drugim wierszu wejścia znajduje ciąg N znaków H
i
Y
, reprezentujący tekst wiadomości.
Wyjście
W pierwszym i jedynym wierszu wyjścia powinno znaleźć się jedno słowo
złożone z liter H
i Y
– wiadomość po korekcie,
czyli takiej jednej zamianie znaku, po której liczba wystąpień podciągu
HY
jest maksymalna.
Ograniczenia
1 ≤ N ≤ 100 000.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Po zamianie znaku na drugiej pozycji
dostalibyśmy słowo |
Wejście | Wyjście | Wyjaśnienie |
|
|
Początkowo w słowie znajduje się 9 podciągów |
Wejście | Wyjście | Wyjaśnienie |
|
|
Po zamianie litery na drugiej pozycji
otrzymamy słowo |
Wejście | Wyjście | Wyjaśnienie |
|
|
W początkowym słowie znajduje się jedno
podsłowo |
Po dniu pełnym atrakcji w Dubaju Karol postanowił udać się do Las Vegas, gdzie jego rosnące zainteresowanie teorią prawdopodobieństwa i dysponowanie nienagannymi manierami skłoniły go do zostania krupierem.
Karol otwierał właśnie stół do gry w pokera, gdy przypomniał sobie, że z jednym z N graczy siedzących przy tym stole wiążą go zażyłości towarzyskie. By lekko dopomóc jego szczęściu, Karol postanowił, że “wytasuje” znajomemu strita przy rozdawaniu kart. Proces rozdawania kart w kasynie Karola jest maszynowy – krupier wkłada do maszyny talię kart, a ta samodzielnie rozdaje karty graczom. W maszynie jest już talia kart i teraz Karol zastanawia się, ile co najmniej zamian kart musi wykonać, by jego znajomy na pewno dostał strita. Przez zamianę kart rozumiemy wybranie dwóch kart z maszyny i włożenie pierwszej w miejsce drugiej i drugiej w miejsce pierwszej.
Strit to układ kart – pięć kart o następujących po sobie wartościach,
przy czym karty nie mogą być wszystkie jednego koloru (strit tworzą np.
karty 4
, 5
, 6
, 7
w
kolorze karo i 8
w kolorze trefl). As może być zarówno
najwyższą kartą (strit 10 J Q K A
), jak i najniższą (strit
A 2 3 4 5
), jednak zakazane jest tworzenie stritów, w
których as ma podwójną rolę (np. K A 2 3 4
).
Maszyna rozdaje karty w taki sposób, że gracz o numerze k otrzymuje k-tą, (N+k)-tą, (2N+k)-tą, (3N+k)-tą i (4N+k)-tą kartę z talii.
Znajomy Karola zawsze jest graczem nr 1.
Napisz program, który wczyta liczbę graczy i opis talii znajdującej się w maszynie, wyznaczy liczbę ręcznych zamian kart z talii wystarczającą do zapewnienia strita graczowi nr 1 i wypisze ją na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajduje się jedna dodatnia liczba całkowita N, określająca liczbę graczy. W drugim wierszu wejścia znajdują się 52 opisy kolejnych kart z talii pooddzielane pojedynczymi odstępami.
Opis karty składa się z dwóch następujących bezpośrednio po sobie
części: pierwsza to wartość oznaczana przez jeden spośród napisów
A
, K
, Q
, J
,
10
, 9
, …, 2
, natomiast druga to
kolor oznaczany przez jeden spośród napisów s
,
h
, c
, d
(spades,
hearts, clubs,
diamonds).
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna nieujemna liczba całkowita oznaczająca minimalną liczbę zamian kart w talii potrzebnych do zagwarantowania graczowi nr 1 strita.
Ograniczenia
2 ≤ N ≤ 10, karty opisane na wejściu tworzą permutację talii.
Przykład
Dla czytelności drugi wiersz każdego zestawu danych został ręcznie podzielony. W zestawach danych, na których testowane są programy, zawsze są dokładnie dwa wiersze (jak opisano w sekcji Wejście).
Wejście | Wyjście | Wyjaśnienie |
|
|
Gracz nr 1 ma strita ( |
Wejście | Wyjście | Wyjaśnienie |
|
|
Po zamianie kart |
Wejście | Wyjście | Wyjaśnienie |
|
|
Po zamianie kart |
Karol znowu przemieścił się między kontynentami i tym razem zatrudnił się przy budowie słynnej Drogi Panamerykańskiej.
Zadaniem Karola jest ustawienie znaków ostrzegawczych przed niebezpieczeństwami na jednej z jednokierunkowych jezdni tej drogi zgodnie z poniższymi regułami:
- Każdy znak musi być przykręcony do słupa. Słupy zostały już wbite w ziemię i Karol wie dokładnie w jakich miejscach drogi.
- Na każdym słupie mogą być co najwyżej trzy znaki.
- Każde niebezpieczeństwo na drodze wymaga postawienia znaku co najmniej A i co najwyżej B metrów przed.
- Każdy znak może informować o tylko jednym niebezpieczeństwie.
Pomóż Karolowi ustawić znaki lub stwierdź, że takie ustawienie nie istnieje.
Napisz program, który wczyta pozycje niebezpieczeństw i słupów, wyznaczy odpowiednie przypisanie znaków do słupów lub rozstrzygnie, że takie nie istnieje i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajdują się dwie dodatnie liczby całkowite N i M oddzielone pojedynczym odstępem i oznaczające odpowiednio liczbę niebezpieczeństw i liczbę słupów wbitych przy drodze.
W drugim wierszu wejścia znajdują się dwie dodatnie liczby całkowite A i B oddzielone pojedynczym odstępem i oznaczające odpowiednio minimalną i maksymalną odległość od znaku do niebezpieczeństwa.
W trzecim wierszu wejścia znajduje się N dodatnich liczb całkowitych D1, D2, …, DN pooddzielanych pojedynczymi odstępami i oznaczających odległości (w metrach) kolejnych niebezpieczeństw od początku drogi.
W czwartym wierszu wejścia znajduje się M dodatnich liczb całkowitych S1, S2, …, SM pooddzielanych pojedynczymi odstępami i oznaczających odległości (w metrach) kolejnych słupów od początku drogi.
Wyjście
W pierwszym wierszu wyjścia powinno znaleźć się słowo
TAK
lub NIE
, w zależności od tego czy istnieje
rozwiązanie.
Jeśli rozwiązanie istnieje, należy wypisać N kolejnych wierszy. W i-tym z nich powinna znaleźć się jedna dodatnia liczba całkowita oznaczająca numer słupa, na którym został umieszczony znak odpowiadający i-temu z kolei niebezpieczeństwu.
Uwaga: dla niektórych zestawów testowych więcej niż jedna odpowiedź jest poprawna.
Ograniczenia
1 ≤ N, M ≤ 100 000, 1 ≤ A ≤ B ≤ 109, 1 ≤ D1 ≤ D2 ≤ ⋯ ≤ DN ≤ 109, 1 ≤ S1 < S2 < ⋯ < SM ≤ 109.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Znaki informujące o pierwszym i drugim niebezpieczeństwie należy postawić na pierwszym słupie, a znak informujący o trzecim niebezpieczeństwie należy postawić na drugim słupie. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Rozwiązanie nie istnieje, ponieważ w zasięgu czwartego niebezpieczeństwa nie ma żadnego słupa, na którym mógłby być znak. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Rozwiązanie nie istnieje, ponieważ na pierwszym słupie można postawić tylko znak dotyczący pierwszego niebezpieczeństwa, więc pozostałe pięć znaków nie zmieści się na drugim słupie. |
Wizyta na kontynentach oddalonych od Europy o Ocean Atlantycki dłużyła się Karolowi; postanowił więc, że już czas wracać do domu. Kupił możliwie najszybszy bilet lotniczy do Warszawy i tak się akurat złożyło, że był z kilkugodzinną przesiadką w Paryżu; nasz podróżnik nie mógł oczywiście zmarnować okazji do krótkiego zwiedzania stolicy Francji.
Karol postanowił wybrać się na Pola Elizejskie, na których właśnie odbywał się festiwal Bomb Francuskich – słynny na cały świat pokaz fajerwerków.
Pola Elizejskie mają kształt prostokątnego placu o wymiarach N × M metrów i mogą zostać
w oczywisty sposób podzielone na N ⋅ M kawałków
jednostkowych. Kawałek jednostkowy może być jednoznacznie wyznaczony
poprzez podanie jego współrzędnych X i Y. Władze umieściły już na
niektórych kawałkach jednostkowych placu fajerwerki dwóch różnych typów:
HS
– Hałaśliwych Serpentyn i AL
– Ambrozji
Leistej.
Fajerwerki typu HS
mają moc RHS i
gdy wybuchają, to pokrywają niebo nad wszystkimi kawałkami jednostkowymi
placu, które odległe są w metryce Manhattan o nie więcej niż RHS –
jeśli wystrzelony zostaje fajerwerk typu HS
z kawałka
jednostkowego o współrzędnych XF i YF, to pokrywa
wszystkie kawałki jednostkowe Pola Elizejskiego, których współrzędne
XP i YP spełniają
zależność |XF−XP| + |YF−YP| ≤ RHS.
Fajerwerki typu AL
mają moc RAL i
gdy wybuchają, to pokrywają niebo nad wszystkimi kawałkami jednostkowymi
placu, które odległe są w metryce Maksimum o nie więcej niż RAL –
jeśli wystrzelony zostaje fajerwerk typu AL
z kawałka
jednostkowego o współrzędnych XF i YF, to pokrywa
wszystkie kawałki jednostkowe Pola Elizejskiego, których współrzędne
XP i YP spełniają
zależność max(|XF−XP|,|YF−YP|) ≤ RAL.
Niestety ze względu na konieczność powrotu na lotnisko, jak i faktu opóźnienia się pokazu przez warunki atmosferyczne, Karol nie doczekał się wystrzału fajerwerków. Teraz zastanawia się nad tym, jak duże były ich moce. Podróżnik jest pewien, że po pierwsze fajerwerki pokryły niebo nad każdym kawałkiem jednostkowym Pola Elizejskiego; a po drugie, że ze względu na ograniczony budżet suma mocy fajerwerków RHS i RAL była najmniejsza możliwa.
Twoim zadaniem będzie napisanie programu, który wczyta rozłożenie fajerwerków na Polu Elizejskim i wyznaczy minimalną sumę mocy fajerwerków RHS i RAL, dla której możliwe jest pokrycie nieba nad każdym kawałkiem jednostkowym Pola Elizejskiego.
Wejście
W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N i M, oddzielone pojedynczym odstępem i oznaczające odpowiednio wysokość i szerokość Pola Elizejskiego. W każdym z kolejnych N wierszy znajduje się ciąg M znaków określających zawartość poszczególnych kawałków jednostkowych Pola Elizejskiego:
.
– oznacza kawałek jednostkowy, na którym nie został umieszczony żaden fajerwerk,A
– oznacza kawałek jednostkowy, na którym umieszczony został fajerwerk typuAL
,H
– oznacza kawałek jednostkowy, na którym umieszczony został fajerwerk typuHS
.
Zagwarantowane jest, że na Polu Elizejskim znajduje się przynajmniej jeden fajerwerk.
Wyjście
W pierwszym wierszu wyjścia powinna się znaleźć jedna liczba naturalna – minimalna suma mocy fajerwerków RHS i RAL, dla której możliwe jest pokrycie nieba nad każdym kawałkiem jednostkowym Pola Elizejskiego.
Ograniczenia
1 ≤ N, M ≤ 1 000.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Niebo nad każdym kawałkiem jednostkowym Pola Elizejskiego zostanie pokryte, gdy RHS = 2 i RAL = 5. Można sprawdzić, że nie jest możliwe pokrycie Pola Elizejskiego fajerwerkami o sumarycznej mocy mniejszej niż 7. |
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 |x−x′| + |y−y′| 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 |
|
|
Karol wykona jedyne zlecenie. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Karolowi nie opłaca się wykonywać zlecenia, więc pojedzie wprost z punktu początkowego do końcowego. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Karol może zyskać dowolnie dużo wykonując zlecenia naprzemiennie. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Karol może zyskać co najwyżej dwa dolary, wypełniając kolejno zlecenia nr 3, nr 1, nr 2. |
Po długich tułaczkach Karol w końcu wylądował w Warszawie, teraz zostało jeszcze tylko wsiąść do samochodu i za dwie godzinki dojechać do domu.
Karol wsiadał już do samochodu, gdy ostatni raz spojrzał na panoramę N warszawskich wieżowców i tak się złożyło, że wszystkie z nich widoczne były jeden przy drugim w rzędzie. Przyjrzał się im uważnie i zauważył, że każdy z nich ma parzystą liczbę pięter, a ponadto nie ma dwóch budynków o jednakowej liczbie pięter. Podróżnik zaczął się zastanawiać nad tym ile inwersji, czyli takich par budynków, że wyższy stoi na lewo od niższego, jest obecnych w panoramie warszawskich wieżowców. Policzył to szybko, wsiadł do samochodu i odjechał.
W drodze jednak coś nie dawało mu spokoju, zastanawiał się nad tym, ile najwięcej inwersji mogłoby być obecnych w warszawskiej panoramie, gdyby któremuś z budynków dobudować lub zburzyć nieparzyście wiele pięter.
Niestety ta zagadka przerosła Karola i to Twoim zadaniem będzie napisanie programu, który wczyta wysokości kolejnych budynków warszawskiej panoramy i wyznaczy maksymalną liczbę inwersji, jaką można uzyskać po dobudowaniu lub zburzeniu nieparzystej liczby pięter jednego, dowolnego budynku.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, oznaczająca liczbę budynków obecnych w warszawskiej panoramie. W drugim wierszu wejścia znajduje się ciąg N liczb Ai, pooddzielanych pojedynczymi odstępami i oznaczający wysokości kolejnych budynków w panoramie od lewej do prawej.
Wyjście
W pierwszym wierszu wyjścia powinna się znaleźć jedna liczba naturalna – maksymalna liczba inwersji, jaką można uzyskać po dobudowaniu lub zburzeniu nieparzyście wielu pięter dowolnego budynku.
Ograniczenia
1 ≤ N ≤ 100 000, 2 ≤ Ai ≤ 109.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Początkowo mamy 17 inwersji, a dobudowując do trzeciego wieżowca 11 pięter, otrzymamy 4 dodatkowe inwersje. |