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

2020-2022 2023 Regulations Schedule RODO info Ranking

Contest problemset description


Czołgi
(czolgi)
Limit pamięci: 1024 MB
Limit czasu: 2.00 s

test test

Generał Sherman wygrał właśnie arcyważną bitwę z Pułkownikiem Leopardem. Kolumna jego czołgów wraca teraz do bazy aby świętować zwycięstwo. Jednakże ocalałe czołgi Pułkownika Leoparda zastawiły zasadzkę na oddział Generała Shermana. Pomóż centrali rozsztrzygnąć kto wygra to ostateczne starcie.

Wszystkie czołgi możemy prezentować jako punkty w kartezjańskim ukłądzie współrzędnych. Generał Sherman posiada N czołgów o współrzędnych
(x1, 1,y1), (x1, 2,y1), …, (x1, N,y1). Podobnie Pułkownik Leopard ma M czołgów o współrzędnych (x2, 1,y2), (x2, 2,y2), …, (x2, M,y2). Zachodzi y2 > y1.

Ponieważ czołgi Generała Shermana wracają do bazy, to ich lufy początkowo są skierowane w prawo. Pułkownik Leopard dobrze przygotował swój atak i lufy jego czołgów są skierowane w kierunku czołgów przeciwnika, w dół. Początkową przykładową sytuajcę ilustruje obrazek.

Gdy rozpocznie się walka, wszystkie czołgi będą mogły zacząć obracać swoje lufy, każdy z tą samą prędkością kątową. Jeśli lufa czołgu jest aktualnie skierowana na inny czołg, to może on go zniszczyć. Nawet jeżeli ma on sam zostać zniszczony w tym samym momencie. W szczególności jeśli dwa czołgi celują w siebie nawzajem to mogą oba siebie zniszczyć.

Pomóż centrali dowiedzieć się, który z przywódców pierwszy zniszczy wszystkie czołgi przeciwnika przy optymalnym postępowaniu obu stron. Może się zdarzyć, że na koniec bitwy wszystkie czołgi zostaną zniszczone, w takim przypadku ogłoś remis.

Wejście

W pierwszym wierszu wejścia znajdują się cztery liczby: N, M, y1 i y2.
W drugim wierszu wejścia znajduje się N liczb: x1, 1, x1, 2, …, x1, N.
W trzecim i ostatnim wierszu wejścia znajduje się M liczb: x2, 1, x2, 2, …, x2, M.

Wyjście

Twój program powinien wypisać dokładnie jeden wiersz.
Jeśli wygrał Generał Sherman powinno się w nim znajdować słowo Sherman.
W przypadku wygranej Pułkownika Leoparda powinno to być słowo Leopard.
A w przypadku remisu słowo Remis.

Ograniczenia

1 ≤ N, M ≤ 100 000
1 ≤ y1 < y2 ≤ 1 000 000
1 ≤ x1, 1 < x1, 2 < … < x1, N ≤ 1 000 000
1 ≤ x2, 1 < x2, 2 < … < x2, M ≤ 1 000 000

Podzadania

Podzadanie Warunki Punkty
1 N, M ≤ 2 10
2 N, M ≤ 10 20
3 walka nie skończy się remisem 30
4 brak dodatkowych ograniczeń 40

Przykład

Wejście Wyjście Wyjaśnienie
3 2 1 5
1 6 8
3 7
Leopard

Jest to test z obrazka z treści.


Kompatybilność
(kompatybilnosc)
Limit pamięci: 256 MB
Limit czasu: 2.00 s

Do bazy przybyła nowa dostawa N czołgów oraz N rodzajów amunicji. Każdą z amunicji możemy scharakteryzować liczbą ai oznaczającą jej poziom kompatybilności, analogicznie ci oznacza poziom kompatybilności czołgu i.

Generał wie, że jeżeli włoży amunicję typu i do czołgu typu j, to użyteczność tego czołgu wynosić będzie ai XOR ci.

Problem w tym, że podczas dostawy, nie została mu przekazana informacja, którą amunicję najlepiej włożyć do którego czołgu. Atak na Mickiewiczówek już jutro i generał nie ma czasu na zastanawianie się, jakie jest przydzielenie maksymalizujące sumaryczną użyteczność. Chce jednak wiedzieć, jaka jest sumaryczna użyteczność czołgów po każdym możliwym przydzieleniu amunicji, przy założeniu, że do każdego czołgu został przydzielony inny jej rodzaj modulo 109 + 7

Wejście

W pierwszym wierszu wejścia znajduje się liczba N oznaczająca liczbę czołgów i rodzajów amunicji. W drugim wierszu wejścia znajduje się N liczb a1, a2, …, aN określające poziom kompatybilności amunicji i. W trzecim wierszu wejścia znajduje się N liczb c1, c2, …, cN określające poziom kompatybilności czołgu i.

Wyjście

W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć sumaryczna użyteczność czołgów po wszystkich możliwych przydzieleniach modulo 109 + 7.

Ograniczenia

1 ≤ N ≤ 100 000, 0 ≤ ai, ci ≤ 109.

Przykład

Wejście Wyjście
2
0 1
1 4
10
Wejście Wyjście
4
4 2 3 7
1 0 5 6
360

Ułamki łatwe
(ulamki-latwe)
Limit pamięci: 32 MB
Limit czasu: 1.00 s

Kapral Jasio z bardzo dobrym przybliżeniem oszacował ostatnio liczbę niemieckich czołgów. Zauważył, że na każdym z czołgów jest numer seryjny, a numery przyznawane są sekwencyjnie: 1, 2, 3, … i tak dalej. Jeśli więc wśród dwudziestu wytropionych czołgów największy numer był 95, to całkiem niezłym przybliżeniem liczby wszystkich czołgów jest 100. Kapitan Bajtazar pochwalił kaprala Jasia i obiecał mu awans jeżeli rozwiąże ten problem (kolejnych numerów seryjnych) w bajtockiej armii.

Jasio postanowił, że numery seryjne bajtockich czołgów powinny być ułamkami zwykłymi. Aby było łatwiej, ułamki te muszą być nieskracalne. Dla niepoznaki, numery czołgów będą wprowadzane do ściśle tajnego cybernetycznego systemu w postaci liczb dziesiętnych. Przykładowo: czołg o numerze seryjnym $\frac{1}{2}$ będzie figurował w systemie pod nazwą 0.5. System ten jednak przyjmuje numery o skończonej precyzji. Wyklucza to więc niektóre numery seryjne czołgów, takie jak $\frac{1}{3} = 0.333\ldots$. Jasio postanowił więc używać ułamków najprostszych: ułamków zwykłych nieskracalnych, które zapisane jako ułamki dziesiętne mają skończone nieokresowe rozwinięcie. Takie ułamki Jasio nazwał łatwymi. Przykładowo więc, ułamki $\frac{1}{2}$ oraz $\frac{97}{50}$ są łatwe, zaś ułamki $\frac{1}{3}$ oraz $\frac{5}{20}$ nie są. Dodatkowo, Jasio nie uznaje za łatwe ułamków z mianownikiem 1, ani ułamków z licznikiem 0. Są to liczby całkowite, nie ma sensu zapisywać ich w nienormalny sposób.

W wojsku dysponują jedynie skończoną i bardzo niewielką liczbą szablonów cyfr, które można odmalować na czołgach. Każdej cyfry można użyć tylko jeden raz: jako cyfrę licznika ułamka, jako cyfrę mianownika ułamka albo nie użyć jej wcale. Cyfry, zarówno w liczniku jak i w mianowniku, można wstawiać w dowolnej kolejności. Niedopuszczalne jest uzyskanie zer wiodących: ani w liczniku ani w mianowniku. Pomóż Jasiowi zasłużyć na awans w armii. Ile różnych numerów seryjnych czołgu (łatwych ułamków) Jasio może stworzyć ze swojego zbioru cyfr?

Napisz program, który: wczyta (multi)zbiór dostępnych cyfr, wyznaczy liczbę łatwych ułamków jakie możliwe są do uzyskania z dostępnego zbioru i wypisze wynik na wyjście.

Wejście

W pierwszym (jedynym) wierszu wejścia znajduje się ciąg cyfr, bez żadnych odstępów.

Wyjście

W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna nieujemna liczba całkowita – reszta z dzielenia przez 109 + 7 liczby możliwych do uzyskania łatwych ułamków.

Ograniczenia

Długość ciągu cyfr nie przekracza 18 znaków.

Przykład

Wejście Wyjście Wyjaśnienie
1230
14

Czołg mógłby mieć jeden z następujących numerów seryjnych: $\frac{1}{320} = 0.003125, \frac{1}{32} = 0.03125, \frac{1}{20} = 0.05, \frac{3}{20} = 0.15, \frac{3}{10} = 0.3, \frac{1}{2} = 0.5, \frac{13}{20} = 0.65, \frac{3}{2} = 1.5, \frac{31}{20} = 1.55, \frac{23}{10} = 2.3, \frac{13}{2} = 6.5, \frac{31}{2} = 15.5, \frac{103}{2} = 51.5, \frac{301}{2} = 155.5$.