Codeforces Round 435 (Div. 2) |
---|
Закончено |
Махмуд и Ехаб проходят четвёртое испытание Доктора Зло.
Доктор Зло загадал бинарную строку длины n. Известно, что в ней есть хотя бы один символ '0' и хотя бы один символ '1'. Теперь он хочет, чтобы Махмуд и Ехаб нашли позицию хотя бы одного сивола '0' и позицию хотя бы одного символа '1' в этой строке. Чтобы это сделать, они могут задать Доктору Зло не более 15 вопросов следующего вида. Они говорят Доктору Зло бинарную строку длины n, а Доктор Зло говорит им расстояние Хемминга между их строкой и его строкой. Расстоянием Хемминга между двумя бинарными строками равной длины называется количество позиций, в которых они различаются. Вы можете найти строгое опредение расстояния Хемминга ниже.
Помогите Махмуду и Ехабу справиться с заданием Доктора Зло.
Вы получите вердикт Wrong Answer если
Если программа превышает максимальное число запросов, необходимо завершить её с кодом возврата 0, в противном случае вердикт может быть не Wrong Answer из-за чтения из закрытого потока.
В первой строке ввода содержится целое число n (2 ≤ n ≤ 1000) — длина спрятанной бинарной строки.
Чтобы вывести ответ на задачу, выведите "! pos0 pos1" (без кавычек), где pos0 и pos1 — это позиции какого-то символа '0' и какого-то символа '1' в строке (нумерация с 1). Не забудьте сбросить буфер вывода после вывода ответа!
Чтобы задать вопрос, используйте формат "? s" (without quotes), где s строка, для которой вы хотите узнать расстояние Хемминга между ней и загаданной строкой. Не забудьте сбросить буфер вывода после вывода запроса!
После каждого запроса на стандартный ввод будет подано одно целое число — расстояние Хемминга между строкой из запроса и загаданной строкой.
Чтобы сбросить буфер вывода используйте:
Взломы.
Для взлома выведите бинарную строку длиной не более 1000, содержащую хотя бы один символ '0' и хотя бы один символ '1'.
3
2
1
3
2
1
0
? 000
? 001
? 010
? 011
? 100
? 101
! 2 1
Определение расстояния Хемминга: https://ru.wikipedia.org/wiki/Расстояние_Хемминга
В первом тестовом примере загаданная строка равна 101. Первый запрос равен 000, поэтому расстояние Хемминга равно 2. Во втором запросе загаданная строка всё ещё равна 101 а строка из запроса равна 001, поэтому расстояние Хемминга равно 1.
После нескольких запросов вы узнали, что символ на позиции 2 это '0', а символ на позиции 1 это '1', поэтому надо вывести "! 2 1".
Название |
---|