Ryszard miał 35 dni na budowę lotniska. Zaniedbał jednak to zadanie, a na domiar złego dopiero teraz wrócił do domu. Na wykonanie tego zadania zostało mu niewiele czasu, więc będziesz musiał mu pomóc.
Teren inwestycyjny to nieskończona siatka kwadratowych pól
jednostkowych. W chwili t = 0
Ryszard znajduje się na jednym z pól i rozpoczyna na nim układanie pasa
startowego. Jest to jedyne pole lotniska z położonym pasem w tej chwili.
Dalsze prace opisuje ciąg poleceń. Przykładowo polecenie
W 10 oznacza, że przez następnych 10 jednostek czasu Ryszard będzie
przemieszczał się o jedno pole na zachód w każdej jednostce czasu,
układając pas na odwiedzanych polach.
Niestety Ryszard jest z natury bardzo skąpy i używa najtańszych materiałów budowlanych. Z tego powodu zbudowany przez niego pas nie jest zbyt wytrzymały – każdy fragment nawierzchni ułożony w chwili t rozpada się i znika dokładnie po x jednostkach czasu, czyli w chwili t + x.
Podczas budowy Ryszard może odwiedzać to samo pole wielokrotnie. Twierdzi jednak, że nigdy nie marnowałby materiałów na pole, na którym nawierzchnia jest już ułożona, bo to się nie opłaca. Innymi słowy, za każdym razem, gdy wracał na dane pole, poprzednio ułożona tam nawierzchnia musiała już zdążyć się rozpaść (ostatnio był na tym polu co najmniej x jednostek czasu temu).
Wyznacz największą możliwą wartość x, dla której Ryszard nie jest kłamcą.
Wejście
W pierwszym wierszu wejścia znajduje się liczba N, oznaczająco ilość
instrukcji według, których Ryszard będzie się poruszał. W każdym z
kolejnych N wierszy znajduje się kierunek, w którym Ryszard będzie się
poruszał (N - góra, E - prawo, S
- dół, W - lewo), oraz liczba A, czyli ile kroków wykona w danym
kierunku.
Wyjście
W jedynym wierszu wyjścia powinna się znaleźć maksymalna liczba x, dla której Ryszard spełni swoje założenia o wracaniu na pola. Jeśli Ryszard nigdy nie wróci na żadne pole, na którym już był to wypisz − 1.
Ograniczenia
1 ≤ N ≤ 100, 1 ≤ A ≤ 10.
Podzadanie
| Podzadanie | Warunki | Punkty |
|---|---|---|
| 1 | Ryszard porusza się tylko w górę lub w prawo | 6 |
| 2 | N = 2 | 10 |
| 3 | Ryszard nigdy nie jest na lewo | |
| ani nigdy nie jest niżej niż jego pole początkowe | 20 | |
| 4 | Brak dodatkowych ograniczeń | 64 |
Przykład
| Wejście | Wyjście | Wyjaśnienie |
|
|
Ryszard wejdzie na pole w chwili t = 26, na którym już był w chwili t = 2, a więc x jest co najwyżej 24. Wejdzie również na pole w chwili t = 17, na którym już był w chwili t = 7, czyli x jest co najwyżej 10. Jako że to drugie ograniczenie jest mocniejsze to odpowiedź to 10. |
| Wejście | Wyjście | |
|
|
| Wejście | Wyjście | |
|
|
N krasnali wybiera się na imprezę. Elementem stroju każdego krasnala jest szpiczasta czapka. We wspólnej garderobie krasnale zgromadziły N czapek. Każdy z nich założy na imprezę dokładnie jedną czapkę. Czapki są różnych długości od 1 do N i każda czapka trafi do dokładnie jednego krasnala.
i-ty krasnal ma wzrost Ai. Jeżeli i-ty krasnal założy czapkę o długości j, to jego sumaryczny wzrost będzie wynosił Ai + j. Krasnale mogą być różnego wzrostu, ale idąc na imprezę chciałyby wyglądać podobnie. W tym celu chcą rozdzielić czapki tak, aby jak najwięcej krasnali miało ten sam sumaryczny wzrost (wzrost krasnala powiększony o długość założonej czapki).
Twoim zadaniem jest napisanie programu, który obliczy i wypisze ile maksymalnie krasnali może mieć taki sam wzrost, po rozdzieleniu i założeniu czapek.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba całkowita N – liczba krasnali. W drugim i ostatnim wierszu wejścia znajduje się N liczb całkowitych A1, A2, …, AN – wzrosty krasnali.
Wyjście
W pierwszym i jedynym wierszu wyjścia powinna się znaleźć jedna liczba całkowita – liczba krasnali, które mogą mieć równy wzrost, przy optymalnym rozłożeniu czapek.
Ograniczenia
1 ≤ N ≤ 106, 1 ≤ Ai ≤ 109.
Podzadania
| Podzadanie | Dodatkowe warunki | Punkty |
|---|---|---|
| 1 | n ≤ 9 | 10 |
| 2 | n ≤ 500 | 15 |
| 3 | Ai ≤ 106 | 20 |
| 4 | Liczby Ai są parami różne | 20 |
| 5 | brak | 35 |
Przykład
| Wejście | Wyjście | Wyjaśnienie |
|
|
Możemy przypisać kolejno czapki 6, 1, 5, 2, 4, 3, wtedy sumaryczne wzrosty wynoszą 13, 8, 13, 10, 13, 12 i krasnale 1, 3 i 5 są tego samego wzrostu. Nie da się uzyskać lepszego wyniku. |
| Wejście | Wyjście | |
|
|
| Wejście | Wyjście | |
|
|
Wielkimi krokami zbliżają się Mistrzostwa Świata w Piłce Nożnej. Aby wyłonić absolutnie najlepszych z najlepszych, organizatorzy postanowili zorganizować w Bajtogrodzie prestiżowy, pokazowy Turniej Gwiazd. Wezmą w nim udział wyłącznie reprezentanci trzech krajów uznawanych za głównych faworytów do złota: Hiszpanii, Francji oraz Anglii.
Z każdego z tych państw na zgrupowanie w Bajtogrodzie przyjechało dokładnie N zawodników. Każdy piłkarz został szczegółowo przebadany, a jego aktualną formę opisano za pomocą współczynnika siły. Zawodnicy z Hiszpanii mają siły opisane ciągiem A = (A1,A2,…,AN), z Francji ciągiem B = (B1,B2,…,BN), natomiast z Anglii – ciągiem C = (C1,C2,…,CN).
Selekcjonerem gospodarzy został legendarny Bajtazar. Jego zadaniem jest stworzenie trzyosobowej drużyny marzeń. Zasady rekrutacji są jednak rygorystyczne: W skład każdej drużyny musi wejść dokładnie jeden gracz z Hiszpanii, jeden z Francji oraz jeden z Anglii. Ponieważ jest to turniej pokazowy, różni selekcjonerzy mogą powoływać tych samych zawodników, jednak żadne dwa zespoły nie mogą mieć identycznego składu. Oznacza to, że każda drużyna jest jednoznacznie wyznaczona przez trójkę indeksów (i, j, k).
Analitycy Bajtazara odkryli, że z powodu specyfiki taktycznej, całkowita siła drużyny składającej się z zawodników o siłach Ai, Bj oraz Ck wyraża się specjalnym, “synergicznym” wzorem: AiBj + BjCk + CkAi.
Wybór drużyn odbywa się w systemie kolejkowym. Przed Bajtazarem swoje składy zarejestrowało już K − 1 innych trenerów. Każdy z nich wybierał drużynę o absolutnie największej możliwej sile spośród jeszcze dostępnych kombinacji.
Bajtazar podchodzi do stolika sędziowskiego jako K-ty w kolejce. Pomóż utytułowanemu selekcjonerowi i oblicz, jaką maksymalną siłę będzie miała drużyna, którą przyjdzie mu sformować.
Wejście
W pierwszym wierszu wejścia znajdują się dwie liczby całkowite N oraz K. W drugim wierszu znajduje się N liczb całkowitych A1, A2, …, AN. W trzecim wierszu znajduje się N liczb całkowitych B1, B2, …, BN. W czwartym wierszu znajduje się N liczb całkowitych C1, C2, …, CN.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita – maksymalna siła drużyny Bajtazara.
Ograniczenia
1 ≤ N ≤ 2 ⋅ 105, 1 ≤ K ≤ min (N 3,5⋅105), 1 ≤ Ai, Bj, Ck ≤ 109.
Podzadania
| Podzadanie | Warunki | Punkty |
|---|---|---|
| 1 | N ≤ 200 | 15 |
| 2 | N ≤ 2000, K ≤ 50 | 15 |
| 3 | Ck = 1 dla każdego k | 30 |
| 4 | brak dodatkowych ograniczeń | 40 |
Przykład
| Wejście | Wyjście | Wyjaśnienie |
|
|
Wartości dla 8 możliwych wyborów drużyn są obliczane następująco:
Sortując te siły zespołów malejąco, otrzymujemy kolejno: (44,38,36,34,31,29,27,23). Piąta największa siła, czyli ta która należy do drużyny Bajtazara, to właśnie 31. |
| Wejście | Wyjście | |
|
|
| Wejście | Wyjście | |
|
|
Farmer Dżon, który właśnie przeszedł na emeryturę, wreszcie ma dużo czasu, by zająć się swoją największą pasją – hodowlą szczurów. Niestety życie emeryta nie jest łatwe: zapasy paszy powoli się kończą, a jego podopieczni robią się coraz bardziej głodni.
Pewnego dnia Dżon znalazł na strychu stary, mocno postrzępiony dywan. Ku jego zaskoczeniu okazało się, że materiał, z którego został wykonany, jest prawdziwym przysmakiem dla szczurów. Problem polega jednak na tym, że nie każdy szczur jest w stanie zjeść dowolny fragment dywanu.
Dywan ma kształt prostokąta o wymiarach N × M i został podzielony na N ⋅ M kwadratów jednostkowych. Pole znajdujące się w wierszu i i kolumnie j ma grubość ai, j.
Dla szczura o rozmiarze k obowiązują następujące zasady:
- jeśli ai, j < k, szczur może swobodnie przejść przez dane pole, ale niczego nie zjada,
- jeśli ai, j > 2k, pole jest zbyt grube i szczur nigdy na nie nie wejdzie,
- jeśli k ≤ ai, j ≤ 2k, szczur może wejść na pole i zjeść ai, j − k jednostek dywanu, redukując grubość dywanu w tym kwadracie do k.
Szczur rozpoczyna swoją wędrówkę poza dywanem. Może poruszać się pomiędzy sąsiednimi polami (góra, dół, lewo, prawo), a także dowolnie opuszczać dywan i wracać na niego w innym miejscu na brzegu. Może dowolnie wiele razy wchodzić na to samo pole, jednak po pierwszym wejściu grubość dywanu może być już zmieniona.
Farmer Dżon ma w hodowli Q szczurów i na razie nie wpuszcza żadnego z nich na dywan, ale chciałby wiedzieć ile maksymalnie jednostek dywanu mógłby zjeść każdy ze szczurów, gdyby został wpuszczony.
Wejście
W pierwszym wierszu znajduje się liczba zestawów testowych T. Opis zestawu testowego składa się z następujących wierszy:
- pierwszy wiersz zawiera dwie liczby całkowite N, M,
- kolejne N wierszy zawiera po M liczb całkowitych ai, j opisujących grubości pól dywanu,
- następny wiersz zawiera liczbę szczurów Q,
- ostatni wiersz zawiera Q liczb k1, k2, …, kQ, oznaczających rozmiary szczurów.
Wyjście
Dla każdego zestawu danych wypisz jeden wiersz zawierający Q liczb – maksymalną liczbę jednostek dywanu, które mógłby zjeść szczur o odpowiednim rozmiarze, gdyby został wpuszczony na dywan.
Ograniczenia
1 ≤ T ≤ 104, 1 ≤ N ⋅ M ≤ 106, 1 ≤ Q ≤ 106, 1 ≤ ai, j, ki ≤ 109.
Łączna liczba pól we wszystkich zestawach danych nie przekracza 106.
Łączna liczba szczurów we wszystkich zestawach danych nie przekracza 106.
Podzadania
| Podzadanie | Dodatkowe warunki | Punkty |
|---|---|---|
| 1 | N, M ≤ 10, Q ≤ 100 | 14 |
| 2 | Q ≤ 10 | 34 |
| 3 | brak | 52 |
Przykład
| Wejście | Wyjście | Wyjaśnienie |
|
|
Pierwszy szczur mógłby wejść na kwadrat w lewym górnym rogu i nic nie zjeść, analogicznie na kwadrat w prawym górnym rogu. Mógłby natomiast zjeść 2 jednostki dywanu w prawym dolnym rogu dywanu. To wszystko co mógłby zrobić ten szczur. |
| Wejście | Wyjście | |
|
|
| Wejście | Wyjście | |
|
|