Задача B. Поиск строки по ответу

Автор:А. Баранов   Ограничение времени:1 сек
Ввод / вывод:интерактивный   Ограничение памяти:2 Мб

Условие

Данная задача является интерактивной и предполагает взаимодействие с сервером путем отправки и приема сообщений определенного вида.

Пусть имеется лексикографически упорядоченный набор строк длины n, состоящих из цифр и строчных букв латинского алфавита.

Из указанного набора была выбрана некоторая строка S * . Требуется отгадать ее в процессе общения с удаленным сервером.

В этом Вам поможет вспомогательная функция D(S), вычисляющая "расстояние" между строками S и S * .

Будем считать, что для каждой строки, содержащейся в исходном наборе, функция D возвращает целое число,
указывающее модуль разности ее порядкового номера с номером искомой строки.

Для всех остальных строк указанная функция возвращает вещественное значение
(записанное в формате с десятичной точкой).

При этом известно, что D(S) монотонно растет по мере удаления от S * .
Иначе говоря, имеют место утверждения:
∀ (S1, S2): S *  < S1 ≤ S2 D(S1) ≤ D(S2);
∀ (S1, S2): S *  > S1 ≥ S2 D(S1) ≥ D(S2).

Здесь полагается, что сравнение строк происходит в лексикографическом порядке.

Протокол взаимодействия

Взаимодействие с сервером происходит посредством следующих команд, которые выводятся в выходной поток (stdout).

При первом запросе в выходной поток необходимо вывести команду:

run

В качестве ответа через входной поток (stdin) будет получено натуральное n — размер искомой строки.

Для проверки очередного приближения используется команда:

get, за которой следует предполагаемая строка S.

В качестве ответа будет отправлено значение D(S).

Данная команда приводит к возникновению ошибки, если указанная строка является некорректной
(имеет длину, отличную от n, либо содержит недопустимые символы).

Для завершения сеанса используется команда:

ans, за которой должна следовать строка S * .

Ограничения

Для корректной работы программы, после каждой команды, отправленной в выходной поток,
следует осуществлять вывод перевода строки и выполнять сброс буфера (flush).
Общее число запросов к серверу не должно превышать 18 ⋅ n + 2.

Все вещественные значения записаны в формате с фиксированной точкой и содержат
не более 200 десятичных разрядов.

0 < n ≤ 50


0.096s 0.026s 15