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

2020-2022 2023 Regulations Schedule RODO info Ranking

Contest problemset description


Chińska gra
(A)
Limit pamięci: 64 MB
Limit czasu: 1.00 s

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 ≤ MKWKOKPKZKMQWQOQPQZQ ≤ 106, TK, TQ ∈ {W, O, P, Z}.

Przykład

Wejście Wyjście Wyjaśnienie
60 W
80 -10 30 100
80 W
20 70 200 -30
WYGRANA

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
200 P
0 -20 100 400
140 O
0 20 -100 -20
PRZEGRANA

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
100 Z
20 -20 20 20
140 O
20 -20 20 20
REMIS

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.


Winda
(B)
Limit pamięci: 128 MB
Limit czasu: 2.00 s

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
6
8 3 4 5 7 6
2

Winda zmieniła zwrot ruchu po zatrzymaniu się na trzecim i siódmym piętrze.

Wejście Wyjście Wyjaśnienie
5
6 5 3 2 0
0

Winda nie zmieniła zwrotu ruchu – cały czas jechała w dół.

Wejście Wyjście Wyjaśnienie
7
1 3 4 3 5 4 6
4

Winda zmieniła zwrot ruchu po trzecim, czwartym, piątym i szóstym zatrzymaniu.


Hieroglify
(C)
Limit pamięci: 64 MB
Limit czasu: 1.00 s

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
8
HYHYYYHY
HHHYYYHY

Po zamianie znaku na drugiej pozycji dostalibyśmy słowo HHHYYYHY, które zawiera 13 podciągów HY. Można sprawdzić, że jest to wybór, który maksymalizuje liczbę wystąpień podsłowa HY.

Wejście Wyjście Wyjaśnienie
6
HHHYYY
HHYYYY

Początkowo w słowie znajduje się 9 podciągów HY. Optymalnym wyborem, choć zmniejszającym liczbę podciągów HY jest wybranie trzeciej pozycji i utworzenie słowa: HHYYYY, w którym znajduje się 8 podciągów HY.

Wejście Wyjście Wyjaśnienie
6
HYHYYY
HHHYYY

Po zamianie litery na drugiej pozycji otrzymamy słowo HHHYYY, które zawiera 9 podciągów HY.

Wejście Wyjście Wyjaśnienie
2
HY
YY

W początkowym słowie znajduje się jedno podsłowo HY, a wykonując dowolną zmianę sprowadzimy zawartość podsłów HY do 0 (otrzymując słowo YY lub HH). Zgodnie z treścią zadania musimy wybrać skrajnie lewą pozycję.


Karol, który został krupierem
(D)
Limit pamięci: 32 MB
Limit czasu: 1.00 s

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
2
5c Jh 4c 9h 6c 5h 3s Qs 7d
Jc 9d 4s 2s 7h 6d 2d 7s As 
8s Ac 9c 6h 4d 8d 5s 8h Qd 
Kd 9s Kh 6s 10s Qh 2c 3h Ks 
5d 3d 10c Js Ah 8c Jd 10h 3c 
2h Kc Ad 7c Qc 4h 10d 
0

Gracz nr 1 ma strita (3s, 4c, 5c, 6c, 7d) bez potrzeby zamieniania kart.

Wejście Wyjście Wyjaśnienie
2
3h 2c 4h As 5c 9s 4c 6s 6d 
5d 5s Jh Jc 6h 9d 3s 7h Kh 
2h 10d 4d 10s Kc Qc 3c 8c Kd 
8h 7c 10c Jd Ah Js 9h 3d Qh 
Ad 10h 4s Qd 2d 8d 8s Qs 7s 
6c 5h Ks 9c 7d 2s Ac 
1

Po zamianie kart 2s i 4c, gracz nr 1 ma strita (2s, 3h, 4h, 5c, 6d).

Wejście Wyjście Wyjaśnienie
4
2s 2c 7c 6h Jd Qs 10s 9c Qd 
3c 9h 4c 10d 6d 8d 4h Kd Qh 
8h 5c Kh 7h 4s 5h Ac Kc Ks 
Js 6s 3h 2h Ah 9d Ad 5d 8c 
3s Jc As 3d 9s 5s Qc 10h 10c 
2d 7s 7d 4d 6c 8s Jh 
1

Po zamianie kart 2s i Ad, gracz nr 1 ma strita (10d, Jc, Qd, Kd, Ad).


Znaki ostrzegawcze
(E)
Limit pamięci: 64 MB
Limit czasu: 2.00 s

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
3 2
10 20
50 55 70
40 60
TAK
1
1
2

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
4 3
15 30
10 20 40 80
5 35 85
NIE

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
6 2
100 200
300 310 320 330 340 350
100 200
NIE

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.


Bomby francuskie
(F)
Limit pamięci: 128 MB
Limit czasu: 1.00 s

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ść |XFXP| + |YFYP| ≤ 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(|XFXP|,|YFYP|) ≤ 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 typu AL,
  • H – oznacza kawałek jednostkowy, na którym umieszczony został fajerwerk typu HS.

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 ≤ NM ≤ 1 000.

Przykład

Wejście Wyjście Wyjaśnienie
5 13
.............
.H...........
........A....
.H...........
.............
7

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.


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.


Warszawskie wieżowce
(H)
Limit pamięci: 64 MB
Limit czasu: 1.00 s

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
8
30 16 4 2 10 12 14 8
21

Początkowo mamy 17 inwersji, a dobudowując do trzeciego wieżowca 11 pięter, otrzymamy 4 dodatkowe inwersje.