QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 2048 MB Total points: 100 Interactive

#14447. Poszukiwanie skarbu

Statistics

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

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.