49. Взлом сервера

Не решаласьСложная

Каждый уважающий себя хакер хоть раз взламывал сервер. Теперь возможность выпала и вам. Вам необходимо проникнуть на один из серверов, угадав пароль. Но вот беда, длина пароля — около 10001000 символов, на перебор уйдут миллиарды лет. Известно, что пароль состоит только из маленьких латинских букв. Также один опытный хакер разработал программу, которая считает расстояние Шарского между вашим вариантом и правильным паролем от сервера. Воспользуйтесь этим!

Сервер блокирует ресурс после 20002000 попыток.

Расстояние по Шарскому строк SS и PP — это i=1nSiPi\sum^{n}_{i=1} {\mid S_i - P_i\mid }

Например, расстояние по Шарскому между строками aaabcaaabc и aabdaaabda равно 0+0+1+2+2=50+0+1+2+2=5.

Формат ввода

В первой строке вам дано единственное целое число nn (1n1000)(1 \leq n \leq 1000) — длина искомого пароля.

Каждый запрос представляет собой одну строку длины nn. В ответ на запрос сервер возвращает единственное целое число — расстояние по Шарскому между строкой-запросом и паролем.

При получении ответа 0 завершите программу — данный ответ означает, что вы нашли пароль от сервера.

Формат вывода

Обратите внимание, что

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

Далее приведены примеры очистки буфера для некоторых языков:

  • C++: cout << endl (перевод строки + очистка буфера),cout.flush() или fflush(stdout);
  • Java: System.out.println() (перевод строки + очистка буфера), System.out.flush();
  • Python: print() (перевод строки + очистка буфера), stdout.flush().

Примечание

Рассмотрим гипотический пример работы решения для уточнения принципов взаимодействия.

В первом тестовом примере загадана строка georgiy.

Длина строки georgiy равна 77, поэтому решению на вход подаётся единственное целое число 77.

Сначала решение делает запрос gfedcba — и получает в ответ число 6060:

gg+ef+oe+rd+gc+ib+ya=60|g - g| + |e - f| + |o - e| + |r - d| + |g - c| + |i - b| + |y - a| = 60

Затем решение делает запрос gennady — и получает в ответ число 1616:

gg+ee+on+rn+ga+id+yy=16|g - g| + |e - e| + |o - n| + |r - n| + |g - a| + |i - d| + |y - y| = 16

В итоге решение выводит строку georgiy, получает 00 (так как строки совпали) и завершается.

Ограничения

Ограничение времени

1,5 с

Ограничение памяти

256 МБ

Теги

Нужно войти, чтобы отправить решение.Войти