





Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
W gorący letni dzień Piotrek i jego dwaj przyjaciele, Bartek i Tomek, postanowili kupić arbuza. Wybrali największego i najbardziej dojrzałego. Po zważeniu okazało się, że arbuz waży w kilogramów. Chłopcy szybko pobiegli do domu, umierając z pragnienia, i postanowili podzielić arbuza. Jednak napotkali trudny problem.
Piotrek, Bartek i Tomek są wielkimi fanami liczb parzystych, dlatego chcą podzielić arbuza w taki sposób, aby każda z trzech części ważyła parzystą liczbę kilogramów. Nie jest konieczne, aby części były równe. Chłopcy są bardzo zmęczeni i chcą jak najszybciej rozpocząć posiłek, dlatego Twoim zadaniem jest pomóc im ustalić, czy można podzielić arbuza w taki sposób. Oczywiście każda z części powinna mieć dodatnią wagę.
Wejście
W pierwszym (jedynym) wierszu wejścia znajduje się jedna liczba całkowita w, będąca wagą zakupionego arbuza.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinien się znaleźć napis
TAK
, jeśli chłopcy mogą
podzielić arbuza zgodnie z wymaganiami. W przeciwnym razie należy
wypisać NIE
.
Ograniczenia
1 ≤ w ≤ 100.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Łukasz znany jest ze swojej niezwykłej techniki czytania treści zadań. Na początku konkursu dzieli je na N kupek, na i-tej z nich znajduje się xi treści, a przeczytanie każdej z nich zajmuje mu ti sekund.
Niezwykłość techniki Łukasza polega na tym, że kolejno wybiera dwie nieprzeczytane jeszcze treści, z dwóch różnych kupek i oraz j, a następnie czyta je na raz, co zajmuje mu max (ti,tj) sekund, po czym wyrzuca je pod stół. Oczywiście Łukasz może także przeczytać tylko jedną treść z kupki i, co zajmuje mu ti sekund.
Twoim zadaniem jest obliczenie ile minimalnie czasu potrzebuje Łukasz na przeczytanie wszystkich treści.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba całkowita N, będąca liczbą kupek. W i-tym z kolejnych N wierszy znajdują się dwie liczby całkowite xi oraz ti, będące odpowiednio liczbą treści znajdujących się na i-tej kupce oraz czasem potrzebnym na przeczytanie jednej z nich.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita, będąca minimalnym czasem potrzebnym Łukaszowi na przeczytanie wszystkich treści.
Ograniczenia
1 ≤ N ≤ 1 000, 1 ≤ xi ≤ 10 000, 1 ≤ ti ≤ 109.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Dwaj gracze grają w grę na prostokątnej planszy o wymiarach N × M. Plansza składa się z pól, które początkowo mogę być puste albo zajęte. Gracze na zmianę kładą kamienie na pustym polu, zajmując je. Każdy kolejny kamień musi być sąsiadem poprzedniego (muszą mieć wspólny bok), z wyjątkiem pierwszego, który można położyć w dowolnym pustym miejscu. Gra kończy się, gdy gracz nie może wykonać ruchu – wtedy przegrywa, a drugi gracz wygrywa.
Twoim zadaniem jest policzyć, ile pól jest wygrywających – czyli takich, że jeśli pierwszy gracz postawi tam pierwszy kamień, to wygra grę przy optymalnej grze obu stron.
Wejście
W pierwszym wierszu wejścia znajdują się dwie liczby całkowite N i M, będące wymiarami planszy. W
kolejnych N wierszach znajduje
się opis planszy, w każdym z nich znajduje się ciąg M symboli – kropka (.
) odpowiada polu pustemu, a
kratka (#
) polu
zajętemu.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita będąca liczbą pól wygrywających.
Ograniczenia
1 ≤ N, M ≤ 50.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Dysponujesz bardzo prostym komputerem, który posiada tylko dwa rejestry (X oraz Y). Komputer jest bardzo prosty i udostępnia tylko cztery operacje:
X+
, która powoduje podstawienie do rejestru X sumy X + Y,X-
, która powoduje podstawienie do rejestru X różnicy X − Y,Y+
, która powoduje podstawienie do rejestru Y sumy Y + X,Y-
, która powoduje podstawienie do rejestru Y różnicy Y − X.
Twoim zadaniem jest sprawdzić czy z początkowego ustawienia rejestrów, da się uzyskać ustawienie końcowe.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, będąca liczbą zestawów testowych. W każdym z kolejnych N wierszy znajdują się cztery liczby całkowite Xp, Yp, Xk, Yk, będące odpowiednio początkowym oraz końcowym ustawieniem rejestrów.
Wyjście
Na wyjściu należy wypisać N
wierszy. W i-tym z nich
powinna znaleźć się opowiedź dla i-tego zestawu testowego, będąca
napisem TAK
, jeśli z
początkowego da się przejść do końcowego ustawienia rejestrów, lub NIE
w przeciwnym wypadku.
Ograniczenia
1 ≤ N ≤ 100.
− 109 ≤ Xp, Yp, Xk, Yk ≤ 109.
Przykład
Wejście | Wyjście | |
|
|
Ułamki postaci $\frac{1}{x}$ zawsze pełniły ważną rolę w historii ludzkości. W tym zadaniu przyjrzymy się bliżej problemowi przedstawienia ich w postaci sumy dwóch takich ułamków. Twoim zadaniem jest znalezienie liczby różnych par dodatnich liczba całkowitych (x,y) będących rozwiązaniem równania $\frac{1}{x} + \frac{1}{y} = \frac{1}{N}$, dla danego N.
Uwaga! Pary różniące się tylko kolejnością liczb uznajemy za różne.
Wejście
W pierwszym (jedynym) wierszu wejścia znajduje się jedna liczba całkowita N.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć liczba rozwiązań równania podanego w zadaniu.
Ograniczenia
1 ≤ N ≤ 107.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Na stole znajdują się trzy karty. Na każdej z nich zapisano jedną z liczb 1, 2 albo 3, tak że każda z tych liczb znajduje się na dokładnie jednej karcie. W jednym ruchu można wybrać dwie sąsiednie karty i zamienić je miejscami. Ile najmniej ruchów trzeba wykonać, aby ułożyć karty w kolejności od najmniejszej do największej (od lewej do prawej)?
Wejście
W pierwszym (jedynym) wierszu wejścia znajdują się trzy liczby całkowite A, B, C, będące kolejnymi wartościami na kartach (w kolejności od lewej do prawej).
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć minimalna liczba ruchów potrzebnych do ułożenia kart w odpowiedniej kolejności.
Ograniczenia
1 ≤ A, B, C ≤ 3. A, B, C są parami różne.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|
Turnieje programistyczne odbywaja się w dwóch wersjach – indywidualnej oraz drużynowej. Tym razem jednak z powodu specjalnej okazji planujemy przygotować nietypowy turniej par.
W tym turnieju uczestnicy na początku zostaną dobrani w pary, a następnie każde z przygotowanych zadań zostanie przydzielone dokładniej jednej parze, w taki sposób, że każda para otrzyma dokładnie jedno zadanie. Zwycięzcą zostanie para, która jako pierwsza rozwiąże przydzielone zadanie.
Oczywiście zadania są różnej trudności, a zawodnicy mają różne doświadczenie. Szacujemy, że jeśli zadanie ma trudność h, a zawodnicy mają doświadczenie odpowiednio d1 i d2 to rozwiązanie zadania zajmie im h ⋅ (d1+d2) minut (wyjątkowo im niższe ,,doświadczenie’’ tym lepszy jest zawodnik).
Zawodnicy mają różne, ale nie aż tak różne doświadczenie, to znaczy możemy ich podzielić na trzy grupy – mistrzów, zaawansowanych i początkujących. Zawodnicy z tych grup mają odpowiednio dm, dz i dp doświadczenia.
Twoim zadaniem jest sprawdzenie jaki jest maksymalny czas trwania turnieju, to znaczy ile minut upłynie do momentu rozwiązania zadania przez najszybszą z drużyn, przy założeniu, że zawodnicy zostaną tak sparowani oraz zostanie im przydzielone takie zadanie, żeby ten czas zmaksymalizować.
Wejście
W pierwszym wierszu wejścia znajdują się trzy liczby całkowite m, z i p, będące odpowiednio liczbą zawodników: mistrzów, zaawansowanych i początkujących. W drugim wierszu wejścia znajdują się trzy liczby całkowite dm, dz i dp. W trzecim wierszu wejścia znajduje się $\frac{m + z + p}{2}$ liczb całkowitych będących trudnościami (wartościami h) kolejnych zadań.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita będąca maksymalną długością trwania turnieju.
Ograniczenia
0 ≤ m, z, p ≤ 100 000. 2 ≤ m + z + p ≤ 100 000. m + z + p jest liczbą parzystą.
1 ≤ dm < dz < dp ≤ 1000. 1 ≤ hi ≤ 100 000.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|