Good Bye 2020 |
---|
Закончено |
Это интерактивная задача. В этой задаче нет взломов.
Задача сфинкса — охранять ворота города Фивы, не пропуская недостойных странников. Только те, кто смогут быстро и верно разгадать его загадку смогут войти в город. О судьбе тех, что не справились с загадкой, история умалчивает.
Поэтому у вас нет выбора и вам нужно решить загадку. У сфинкса есть массив $$$a_1, a_2, \ldots, a_n$$$ из неотрицательных целых чисел, строго меньших $$$2^b$$$. Он просит вас найти максимум среди элементов массива. Конечно, сам массив сфинкс вам не даст, но предоставит значения $$$n$$$ и $$$b$$$. Так как загадку вслепую решить нельзя, вы можете задавать сфинксу вопросы определенного вида. По данной паре целых чисел $$$i, y$$$, сфинкс ответит вам, правда ли, что $$$a_i$$$ больше, чем $$$y$$$. Так как сфинксы не очень терпеливы, вы можете спросить не более $$$3 \cdot (n + b) $$$ таких вопросов.
Сфинксы честные, но в то же время хитрые. Массив может изменяться в промежутках между вашими запросами, но только так, что все предыдущие ответы сфинкса останутся правильными.
Первая строка содержит два целых числа $$$n$$$ и $$$b$$$ ($$$1 \leq n, b \leq 200$$$). Оставшаяся часть входных данных будет дана в процессе взаимодействия.
В каждом запросе ваша программа должна вывести одну строку с числом $$$i$$$ ($$$0 \leq i \leq n$$$) и бинарной строкой длины ровно $$$b$$$, которая равна бинарному представлению числа $$$y$$$ (от старших разрядов к младшим).
Если $$$i > 0$$$, то этой строчкой вы обозначаете запрос: Правда ли, что $$$a_i$$$ больше, чем $$$y$$$?. Таких запросов может быть не более, чем $$$3 \cdot (n+b)$$$; после каждого такого запроса считайте «yes» (да) или «no» (нет) на отдельной строке — ответ за запрос.
Если же $$$i = 0$$$, то это — последний запрос: $$$y$$$ должен быть равен максимальному значению среди элементов массива, а ваша программа должна немедленно завершиться. Обратите внимание, что этот запрос не учитывается в ограничении на число вопросов.
Обратите внимание, интерактор адаптивный.
После вывода запроса не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
Если ваша программа не следует протоколу взаимодействия, она может получить любой вердикт. Если она неправильно найдет максимальное значение, то получит вердикт Неправильный ответ.
5 3 yes no no no no yes
5 101 5 110 4 100 3 101 2 001 1 000 0 110
4 3 no no no no
1 000 2 000 3 000 4 000 0 000
1 1
0 0
Во всех примерах массив зафиксирован изначально.
В первом примере массив равен $$$2, 1, 4, 0, 6$$$.
Во втором примере массив равен $$$0, 0, 0, 0$$$.
В третьем примере массив равен $$$0$$$.
Обратите внимание, что если бы интерактор был адаптивный, то полученной в первом и третьем примере информации было бы недостаточно, чтобы вычислить правильный ответ.
Название |
---|