Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Jasiu, wielki fan pizzy, postanowił zrobić niespodziankę swoim przyjaciołom i przygotować ogromną pizzę o promieniu R. Jako wielbiciel matematyki i estetyki, Jasiu chce podzielić pizzę na dokładnie N równych części. Jednak zamiast klasycznego krojenia w trójkątne kawałki od środka, Jasiu ma swój unikalny sposób – kroi pizzę za pomocą linii prostych równoległych do osi OX.
Przyjmij, że środek pizzy znajduje się w punkcie (0,0), a każde cięcie to prosta postaci y = hi, która przecina pizzę na mniejsze kawałki, mające takie same powierzchnie. Twoim zadaniem jest pomóc Jasiowi znaleźć odpowiednie wysokości h1, h2, …, hN − 1, aby pizza była idealnie podzielona na N równych części.
Wejście
W pierwszym wierszu znajdują się dwie liczby N oraz R, będące odpowiednio liczbą osób oraz promieniem pizzy.
Wyjście
W N − 1 wierszach powinny znaleść się nierosnące wysokości, na których należy przeciąć pizze.
Ograniczenia
2 ≤ N, R ≤ 104
Odpowiedź będzie zaakceptowana, jeśli błąd względny lub bezwzględny od poprawniej odpowiedzi będzie mniejszy od 10−6.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Jaś bardzo lubi gofry. Lubi je do tego stopnia, że postanowił kupić sobie jednego ogromnego gofra. Gofry jak wszyscy dobrze wiedzą składają się z kwadracików układające się w kształ kraty, więc ma sens aby ich długość i szerokość mierzyć właśnie tymi kwadracikami. Gofr Jasia ma wymiary N na M kwadracików.
Jako entuzjasta gofrów, Jaś ma w swojej kuchni sporą kolekcję dodatków. Jest ona na tyle duża, że półka na której ona leży ledwo wytrzymuje ciężar tejże kolekcji. No i problem w tym, że półka ta nie wytrzymała i wszystkie dodatki spadły na majestatycznego gofra Jasia.
Jasio początkowo był zdruzgotany całym zajściem, gdyż nakładanie dodatków jest jego ulubioną czynnością, ale po chwili zauważył, że część tego gofra da się jeszcze odratować. Jego planem jest wycinanie kawałków gofra, które nie mają na sobie żadnych dodatków. Oczywiście herezją byłoby przecięcie gofra przechodzące przez kwadraciki lub wycięcie gofra, który nie jest prostokątem, dlatego rozważamy tylko prostokątne kawałki gofra, które albo zawierają dany kwadracik w całości albo wcale.
Jako że możliwości wycięcia pierwszego kawałka jest całkiem dużo, to Jasio poprosił Ciebie o pomoc w policzeniu dla każdych możliwych wymiarów A i B ile jest możliwości wycięcia suchego gofra o tych wymiarach. Jasiu ma wyjątkowo wprawione oko, dlatego rozróżniamy gofry o wymiarach A na B oraz gofry o wymiarach B na A.
Wejście
W pierwszym wierszu wejścia znajdują się dwie dodatnie liczby
całkowite N i M będące odpowiednio liczbą wierszy
oraz liczbą kolumn gofra.
W następnych N wierszach
znajduje się opis gofra, w i–tym wierszu znajduje się ciąg
znaków Si
o długości M. Jeżeli Si, j
jest równe ‘#
’, to kwadracik w i–tym wierszu i j–tej kolumnie gofra został pokryty
dodatkami. W przeciwnym wypadku Si, j
będzie równe ‘.
’.
Wyjście
W pierwszych (jedynych) N wierszach wyjścia powinno się znaleźć po M liczb całkowitych, j–ta liczba w i–tym wierszu powinna być równa liczbie sposób wycięcia gofra o wymiarach i na j.
Ograniczenia
1 ≤ N, M ≤ 2 000.
Przykład
Wejście | Wyjście | |
|
|
W kuchni kluczowe jest idealne zbalansowanie smaków. Podczas przygotowywania potrawy musisz dodać odpowiednią ilość cukru oraz soli, aby uzyskać perfekcyjny efekt. Przepis, który otrzymałeś, składa się z N kroków. Każdy krok określa, czy należy dodać cukier lub sól w ilości będącej potęgą liczby 2.
Jeśli w kroku i przepis ma
literę C
, dodajesz 2i jednostek cukru, a
jeśli przepis ma literę S
, dodajez 2i jednostek soli.
Twoim zadaniem jest sprawdzenie, czy po wykonaniu wszystkich kroków przepisu, potrawa jest słona, słodka czy idealnie zbalansowana.
Wejście
W pierwszym wierszu znajduje sie liczba N będąca długością przepisu.
W kolejnym wierszu znajduje się napis długości N złożony z liter C
oraz S
.
Wyjście
W pierwszym i jedynym wierszu powinno znaleść się SLONA
gdy dodasz więcej soli niż cukru, SLODKA
gdy dodasz więcej
cukru niż soli lub BALANS
gdy dodasz tyle samo cukru
i soli.
Ograniczenia
1 ≤ N ≤ 65.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Do potrawy dodamy 21 + 23 = 10 jednostek soli oraz 22 + 24 = 20 jednostek cukru. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Do potrawy dodamy 22 + 23 = 12 jednostek soli oraz 21 = 2 jednostek cukru. |
Ulubioną zupą Jasia jest zupa literkowa (zupa pomidorowa z makaronem w kształcie liter). Sympatia Jasia do tej zupy wynika z możliwości grania w gry słowne podczas jedzenia. Ponieważ Mama Jasia ugotowała dla niego dzisiaj tę zupę, Jasio od razu zabrał się do jej konsumpcji. W tym momencie w zupie znajduje się dziewięć liter, które ułożyły się w kształt kraty 3x3. Jasio wymyślił pewne słowo S i zaczął się zastanawiać, czy jest w stanie jednym zgrabnym ruchem nabrać to słowo na łyżkę.
Ruch nazwiemy zgrabnym, jeśli każda nabrana na łyżkę litera (poza pierwszą) -– przed rozpoczęciem nabierania liter –- znajdowała się obok poprzedniej nabranej litery. Formalnie, niech Zi, j oznacza literę znajdującą się w i–tym wierszu oraz j–tej kolumnie kraty. Wtedy dla każdej pary kolejnych liter Zi1, j1 oraz Zi2, j2 musi zachodzić warunek |i1−i2| + |j1−j2| = 1.
Pomóż Jasiowi ustalić, czy jest w stanie nabrać na łyżkę słowo S jednym zgrabnym ruchem, zaczynając od litery znajdującej się w pierwszym wierszu i pierwszej kolumnie kraty (Z1, 1).
Wejście
W pierwszym wierszu wejścia znajduje się wymyślone przez Jasia słowo
S.
W następnych trzech wierszach znadują się trzyliterowe słowa będące
opisem położenia liter w zupie. j–tą literę w i–tym wierszu oznaczamy przez Zi, j.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinno się znaleźć
TAK
, jeżeli jest możliwe zagarnięcie literek na łyżkę, aby
znajdowało się na niej słowo S, lub NIE
w przeciwnym
przypadku.
Ograniczenia
Słowo S ma dziewięć liter. Zi mają po trzy litery. S oraz Z zawierają wyłącznie litery alfabetu angielskiego.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Ilustracja na początku treści prezentuje ruchy łyżką potrzebne do zagarnięcia “literkowa” na łyżkę. |
Jasiu dostał zalecenie od dietetyka, że: musi ograniczyć spożywanie niezdrowych potraw oraz zacząć “trzymać linię”. Jak usłyszał, tak zrobił. Na następne N dni zaplanował po M potraw. Rozpisał je wszystkie w prostokąt N × M i zastanawia się, jak dotrzymać zaleceń fachowca.
Każdą z potraw opisał jako pizzo-podobną lub sałatko-podobną, co oznacza tyle, że potrawa zwiększa lub zmniejsza jego wagę. Jasiu poprzez “trzymanie linii”, zrozumiał dwie następujące rzeczy:
Potrawy, które zje, stanowią ścieżkę w prostokącie z górnego lewego do dolnego prawego rogu, poruszając się wyłącznie w prawo lub w dół.
Nie może przytyć, ani schudnąć, czyli potraw pizzo-podobnych ma być tyle co salatko-podobnych.
Czy dla podanych potraw na najbliższe N dni, możliwe jest stworzenie diety cud dla Jasia?
Wejście
W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N oraz M opisujące wymiary prostokąta Jasia.
W następnych N wierszach
znajduje się ciąg o długości M
złożony z liter P
oraz S
, opisujący czy w
danym polu potrawa jest pizzo-podobna lub
sałatko-podobna.
Wyjście
W pierwszym wierszu wyjścia powinno znaleźć się słowo
NIE
, gdy nie jest możliwe stworzenie diety cud. Jeśli
istnieje, wypisz TAK
oraz słowo długości (N+M−2), składające się z
liter P
(ruch w prawo) i D
(ruch w dół),
opisujące ścieżkę diety Jasia.
Jeśli istnieje wiele poprawnych odpowiedzi, wypisz dowolną z nich.
Ograniczenia
1 ≤ N, M ≤ 1000
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Jasiu przyszedł do supermarketu po codzienne zakupy i jak zawsze poszukuje swoich ulubionych batoników. Niestety, supermarket jest ogromny, a stoisko znajduje się w jednym z wielu działów. Jasiu stojąc w punkcie (0,0) zapytał ekspedientkę, jak tam dotrzeć, i otrzymał od niej szczegółową instrukcję N komend, gdzie i-ta z nich jest postaci: “Kieruj się w <LEWO|PRAWO|GÓRĘ|DÓŁ> przez Di metrów, a następnie…”.
Jednak jako matematyk, Jasiu nie zapamiętał kierunków, a jedynie długości odcinków, przez które ma iść. Ostatnią szansą na odnalezienie ukochanych batoników Jasia jest jego ślepy strzał do miejsca (X,Y). Sprawdź, czy istnieje przyporządkowanie kierunków do podanych długości, tak aby finalnie Jasiu znalazł się w punkcie (X,Y).
Wejście
W pierwszym wierszu znajdują się trzy liczby N, X oraz Y, oznaczające liczbę komend oraz ślepy strzał Jasia. W kolejnym wierszu znajduje się N liczb opisujących kolejne długości w komendach ekspedientki.
Wyjście
W pierwszym wierszu wypisz NIE
, jeśli żadne
przyporządkowanie kierunków nie znajdzie się w (X,Y). W przypadku gdy
takie przyporządkowanie istnieje, wypisz TAK
, a w następnym
wierszu napis długości N
złożony z G
, D
, L
,
P
, taki że: jeśli w i-tej komendzie idziesz w górę
wypisz G
, jeśli idziesz w dół wypisz D
, jeśli
idziesz w lewo wypisz L
, a jeśli w prawo to
P
.
Ograniczenia
1 ≤ N ≤ 2000, 0 ≤ |X|, |Y| ≤ 3.6 × 106, 1 ≤ Di ≤ 1800
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Możliwe, że ekspedientka wielokrotnie z rzędu kierowała w tym samym kierunku. |
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Jasiu przygotowuje ciasto na urodziny Małgosi. Jako że Małgosia jest całkiem wybrednym dzieckiem, to powstała lista życzeń odnośnie tego jak ma wyglądać ciasto:
Ciasto ma być kwadratowe i mieć wymiary 2N na 2N.
Na cieście ma się znajdować wisienka, która będzie się znajdowała w punkcie (X,Y).
Całe ciasto (poza miejscem z wisienką) ma być pokryte lukrem, w taki sposób, aby tworzył on obrazek składający się z kwadratów, z czego każdy z nich ma inny kolor, a ich boki są równe pewnej całkowitej potędze dwójki.
Żadnego miejsca ciasta nie można pokryć lukrem więcej niż jeden raz.
Lista ta jest wyjątkowo specyficzna, a w domu nie ma żadnego lukru, więc Jasiu postanowił nie marnować czasu i pójść do sklepu. Dla każdego i ∈ [0,N−1] kupił Li opakowań lukru i–tego typu. Opakowanie lukru i–tego typu ma dokładnie tyle lukru ile potrzeba na pomalowanie wypełnionego kwadratu o wymiarach 2i na 2i. Każdy z kupionych przez niego lukrów ma inny kolor, więc każdego z nich można będzie użyć do narysowania tylko jednego kwadratu.
Jasiu podejrzewa, że mógł się pomylić i albo nie będzie w stanie spełnić specyfikacji Małgosi, albo kupił za dużo lukru co go mocno zirytuje, bo Jasiu nie lubi kupować rzeczy w nadmiarze. Niestety nie jest w stanie tego szybko ustalić, dlatego poprosił Cię o pomoc w stwierdzeniu czy może on wykorzystać cały lukier do spełnienia zachcianek Małgosi i jeżeli jest to możliwe, o znalezienie sposobu pokrycia ciasta całym lukrem.
Wejście
W pierwszym wierszu wejścia znajduje się trzy liczby całkowite N, X, Y będące
odpowiednio liczbą określającą wymiary ciasta oraz współrzędnymi
opisującymi położenie wisienki na torcie.
W drugim (i ostatnim) wierszu wejścia znajduję się N liczb całkowitych z czego i–ta z nich to Li − 1, czyli
liczba kupionych opakowań lukru i–tego typu.
Wyjście
W pierwszym wierszu wyjścia powinno się znaleźć słowo
TAK
, jeżeli jest możliwe wykorzystanie całego lukru do
spełnienia zachcianek Małgosii lub NIE
w przeciwnym
wypadku.
Jeżeli zostało wypisane TAK
, to w następnych N wierszach powinien znaleźć się
opis pokrycia ciasta lukrem.
W i–tym wierszu opisu powinny
się znajdować trzy liczby całkowite Ki, Xi, Yi
oznaczające odpowiednio, że opakowaniem lukru Ki–tego typu
namalowano kwadrat o wymiarach 2Ki
na 2Ki,
którego lewy dolny róg jest w punkcie (Xi,Yi).
Liczba wystąpień Ki równych j w opisie powinna być równa Lj.
Ograniczenia
1 ≤ N ≤ 60, 1 ≤ X, Y ≤ 2N, 0 ≤ Li ≤ 100 000, ∑Li ≤ 100 000.
Przykład
Wejście | Wyjście | |
|
|
Ilustracja poniżej jest reprezentacją podanego rozwiązania powyższego testu przykładowego. Czerwona kropka oznacza wisienkę, a kolorowe kwadraty lukier. Zwróć uwagę, że w punkcie z wisienką nie ma lukru.
Wejście | Wyjście | |
|
|
Jasiu otwiera swoją pierwszą restaurację. Przygotowuje w niej dokładnie dwie potrawy: pizzę (o cenie P bitolarów) oraz spaghetti (o cenie S bitolarów). Po przeprowadzonych analizach rynku Jasiu doszedł do dwóch fundamentalych wniosków:
Klient, wydając zbyt mało, odnosi wrażenie, że dania są niskiej jakości. Z drugiej strony, jeśli cena przekracza pewną wartość, klienci czują, że przepłacili. Idealnie jakby wydali na pizzę i spaghetti dokładnie N bitolarów (P + S = N).
Oprócz samej sumy rachunku, znaczenie mają także wizualne cechy poszczególnych cen. A dokładniej, poziom satysfakcji klienta z wizyty wynosi s(P) + s(S) (gdzie s(X) to suma cyfr liczby X).
Wyznaczenie cen przerosło Jasia, więc skierował się do Ciebie z pytaniem o ustalenie cen P oraz S zgodnymi z powyższymi wnioskami i podanie maksymalej wartości satysfakcji klienta.
Wejście
W pierwszym (jedynym) wierszu wejścia znajduje się liczba naturalna N oznaczająca idealną sumaryczną cenę pizzy i spaghetti.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna znaleźć się jedna liczba całkowita, maksymalny możliwy poziom satysfakcji klienta.
Ograniczenia
1 ≤ N ≤ 1012, 0 ≤ P, S ≤ N
Uwaga: Za darmo to też uczciwa cena, lecz ujemna już jest nie do zaakceptowania.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Gdy P = 17 oraz S = 18, otrzymamy s(17) + s(18) = 1 + 7 + 1 + 8 = 17. Można pokazać, że nie da się otrzymać większego poziomu satysfakcji klienta. |
Wejście | Wyjście | Wyjaśnienie |
|
|
Gdy P = 5000000001 oraz S = 4999999999, otrzymamy s(5000000001) + s(4999999999) = 91 |
Dzisiejsze programy kulinarne często opierają się na gustach kilku jurorów, co może prowadzić do niesprawiedliwych ocen. Jednak nowy program “ChefMaster” zmienia zasady gry! W tej edycji aż miliard jurorów decyduje o przyszłości kucharzy, co daje większą szansę na sprawiedliwą ocenę.
Jasiu, nasz kucharz, bierze udział w programie i przygotował N dań. Jurorzy mają zróżnicowane gusta: dla każdego dania i, posmakuje ono tylko określonej grupie jurorów – od li do ri włącznie. Jedynym warunkiem przejścia do kolejnego etapu jest, aby dla każdych dwóch kolejnych dań i oraz i + 1 istniał juror, który polubi oba dania.
Przed wydaniem Jasiu może jednak dokonywać pewnych zmian w daniach poprzez dwie dostępne operacje:
Posolenie dania i – powoduje, że juror o indeksie li przestaje lubić to danie, ale zaczyna smakować ono jurorowi o indeksie (ri+1) (jeśli ri + 1 ≤ 109)
Posłodzenie dania i – powoduje, że juror o indeksie ri przestaje lubić to danie, ale zaczyna smakować ono jurorowi o indeksie (li−1) (jeśli li − 1 ≥ 1)
Czasu jest niewiele, a przejście do kolejnego etapu nie jest pewne. Powiedz, ile minimalnie Jasiu musi wykonać operacji posolenia bądź posłodzenia, aby spełnił warunek awansu.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, oznaczająca liczbę dań przygotowanych przez Jasia. W następnych N wierszach znajdują się dwie liczby naturalne li oraz ri oznaczające przedział jurorów, którym początkowo posmakowało danie i.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna znaleźć się jedna liczba całkowita oznaczająca minimalną liczbę operacji, aby Jasiu spełnił warunek przejścia do kolejnego etapu.
Ograniczenia
1 ≤ N ≤ 105, 1 ≤ li ≤ ri ≤ 109
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|