Skrzynia skarbów o wymiarach $2 \times 2$ jest ukryta gdzieś w siatce $5 \times 5$. Wiersze są ponumerowane od 1 do 5, podobnie jak kolumny, przy czym komórka $(1, 1)$ jest lewym górnym rogiem siatki. Twoim celem jest znalezienie skarbu w ciągu co najwyżej 5 zapytań. Możesz zapytać o dowolną komórkę siatki, aby sprawdzić, czy znajduje się w niej jakakolwiek część skrzyni skarbów. Po wykonaniu co najwyżej 5 zapytań musisz wypisać współrzędne lewego górnego rogu skrzyni.
Interakcja
Twój program może wykonać do 5 zapytań dotyczących lokalizacji skarbu. Aby wykonać zapytanie, wypisz w nowej linii polecenie w formacie:
? i j
gdzie $i$ oraz $j$ są liczbami całkowitymi z zakresu od 1 do 5. Pytasz w ten sposób, czy komórka w $i$-tym wierszu i $j$-tej kolumnie zawiera część skrzyni skarbów. Po każdym zapytaniu interaktor odpowie $0$, jeśli komórka nie zawiera żadnej części skarbu, lub $1$, jeśli ją zawiera.
Po ustaleniu poprawnej odpowiedzi, wypisz ją w nowej linii w formacie:
! i j
określając współrzędne lewego górnego rogu skrzyni skarbów. Po wypisaniu odpowiedzi twój program musi zakończyć działanie. Jeśli spróbujesz odczytać odpowiedź po wypisaniu wyniku, otrzymasz werdykt błędu.
Nie zapomnij opróżnić bufora wyjściowego po każdym wysłanym zapytaniu.
Jeśli interaktor otrzyma nieprawidłowe lub nieoczekiwane dane wejściowe, wypisze $-1$, a następnie natychmiast zakończy działanie. Twój program musi zakończyć się poprawnie, aby otrzymać werdykt zaliczenia; w przeciwnym razie otrzymany werdykt może być dowolnym werdyktem wskazującym na niepoprawność rozwiązania.
Dostępne jest narzędzie testujące w języku Python. Użyj go w następujący sposób (być może będziesz musiał zastąpić python3 samym python):
python3 testing_tool.py However-you-run-your-program
Narzędzie jest dostarczane w stanie "takim, jakim jest" i możesz dowolnie wprowadzać w nim zmiany lub rozszerzenia. Narzędzie próbuje wykryć i zgłosić typowe błędy, ale nie ma gwarancji, że program, który przejdzie testy narzędziem, zostanie zaakceptowany.
Przykład
Przykład 1
? 3 3 0 ? 2 2 1 ? 1 1 0 ? 1 3 1 ! 1 2