Po zaplanowaniu najbardziej wyrafinowanego skoku, mającego na celu kradzież Klejnotu Koronnego Hrabiego Monte Carlo, napotkałeś ostatnią przeszkodę na swojej drodze: zamknięty sejf. Jednakże trenowałeś na tę właśnie chwilę i doskonaliłeś swoje umiejętności włamywacza.
Sejf posiada $N$ pokręteł, z których każde można ustawić na dowolną wartość całkowitą od $1$ do $2N$. Hrabia Monte Carlo skonfigurował sejf, ustawiając poprawną, tajną wartość dla każdego pokrętła. Aby spróbować otworzyć sejf, ustawiasz każde pokrętło na wybraną przez siebie wartość, a następnie przekręcasz uchwyt drzwi sejfu. Jeśli każde pokrętło jest ustawione na swoją poprawną tajną wartość, nie poczujesz żadnego oporu, a drzwi otworzą się natychmiast.
Oczywiście, otwarcie sejfu poprzez losowe zgadywanie wszystkich poprawnych tajnych wartości ma znikome szanse powodzenia. Jednak jako ekspert w dziedzinie włamań, nawet jeśli Twoja próba jest błędna, poczujesz pewien opór podczas próby otwarcia drzwi, co możesz wykorzystać, aby pomóc w odgadnięciu poprawnych tajnych wartości. Jeśli pokrętło ma tajną wartość $h$, a podczas próby otwarcia drzwi jest ustawione na $d$, pokrętło wywrze opór $|h - d|$ na obrót uchwytu. Możesz odczuć maksymalny opór ze wszystkich pokręteł. (Zauważ, że jeśli ta wartość wynosi $0$, pomyślnie otworzyłeś sejf i zakończyłeś swój skok!)
Niestety, zespół ochrony dowiedział się o Twojej obecności i zbliża się do Twojej lokalizacji. Jesteś w stanie wykonać jedną próbę otwarcia sejfu na sekundę, a oni będą na miejscu za $4N$ sekund! Czy uda Ci się dokonać skoku, zanim zostaniesz złapany?
Interakcja
Jest to problem interaktywny. Interakcja rozpoczyna się od wczytania liczby całkowitej $N$ ($1 \le N \le 500$) ze standardowego wejścia, oznaczającej liczbę pokręteł na sejfie. Twój program może wykonać do $4N$ prób otwarcia drzwi sejfu, określając wartość dla każdego pokrętła. Po każdej próbie otrzymasz informację o oporze, jaki poczułeś na uchwycie drzwi.
Aby wykonać próbę, wypisz linię zawierającą $N$ liczb całkowitych oddzielonych spacjami $d_1, d_2, \dots, d_N$ ($1 \le d_i \le 2N$), czyli wartości, które proponujesz dla każdego pokrętła. Następnie wczytaj ze standardowego wejścia pojedynczą liczbę całkowitą reprezentującą opór, który poczułeś na uchwycie drzwi, $\max_i |h_i - d_i|$, gdzie $h_i$ jest (nieznaną Ci) tajną wartością pokrętła $i$. Jeśli opór wynosi $0$, otworzyłeś sejf i Twój program powinien zakończyć działanie. W przeciwnym razie, jeśli masz jeszcze dostępne próby, możesz spróbować ponownie.
Jeśli wyczerpiesz liczbę prób, Twój program powinien zakończyć się w sposób czysty (choć zostanie oceniony jako błędny za niepowodzenie w otwarciu sejfu na czas przed ucieczką przed strażnikami).
Tajne wartości każdego pokrętła zostały skonfigurowane przez Hrabiego Monte Carlo przed skokiem i nie zmienią się w odpowiedzi na Twoje próby włamania.
Przykład interakcji
Poniższa tabela przedstawia przykładową interakcję dla $N=3$.
| Akcja | Wejście / Wyjście | Opis |
|---|---|---|
| Program wczytuje $N$ | 3 |
Liczba pokręteł wynosi 3. |
| Program wypisuje próbę | 1 1 1 |
Pierwsza próba ustawień. |
| Sędzia odpowiada | 5 |
Maksymalny opór wynosi 5. |
| Program wypisuje próbę | 3 4 5 |
Druga próba ustawień. |
| Sędzia odpowiada | 1 |
Maksymalny opór wynosi 1. |
| Program wypisuje próbę | 4 5 6 |
Trzecia próba ustawień. |
| Sędzia odpowiada | 0 |
Sejf otwarty. |
Uwagi
Nie zapomnij opróżnić strumienia wyjściowego po każdej wypisanej linii i zakończyć działanie programu po zakończeniu interakcji. Upewnij się również, że dokładnie przestrzegasz powyższego protokołu interakcji dotyczącego tego, jakie informacje wypisać w której linii wyjścia: na przykład, jeśli protokół wymaga wypisania listy liczb całkowitych oddzielonych spacjami w jednej linii, sędzia nie zaakceptuje każdej liczby w osobnej linii.
Jeśli sędzia otrzyma nieprawidłowe lub nieoczekiwane dane wejściowe, wypisze $-1$ i natychmiast zakończy działanie. Twój program musi wykryć ten raport o błędzie i zakończyć działanie w sposób czysty, aby otrzymać werdykt Błędna Odpowiedź (Wrong Answer). Jeśli Twój program zablokuje się, oczekując na dalszą interakcję od sędziego, lub spróbuje zinterpretować $-1$ jako wartość oporu, możesz otrzymać inny werdykt (taki jak Przekroczenie Limitu Czasu lub Błąd Wykonania) zamiast Błędnej Odpowiedzi.
Otrzymałeś narzędzie wiersza poleceń do lokalnego testowania. Narzędzie to posiada komentarze na początku wyjaśniające jego użycie.