Ограничения: время – 200ms/500ms, память – 256MiB Ввод: интерактивная задача Вывод: интерактивная задача
Послать решение Blockly Посылки Темы Где Обсудить (0)
Шерлок тренирует свои логические способности с помощью усложненного варианта игры Mastermind. Вместо 4- или
6-разрядного числового кода Ватсон должен задумать перестановку из 52 строчных и прописных букв английского алфавита
(каждая буква встречается в перестановке ровно один раз).
Шерлок называет последовательность из 52 букв (при этом можно указывать одну букву несколько раз), а
Ватсон сообщает, сколько букв оказалось на той же позиции, что и в задуманной перестановке. Шерлоку
требуется не более 300 попыток, чтобы угадать перестановку, задуманную Ватсоном.
Напишите программу, которая продемонстрирует логические способности не хуже, чем у Шерлока.
Протокол взаимодействия
Программа должна вывести строку, содержащую символы ? и пробел, после которых указывается последовательность из
52 строчных и прописных букв английского алфавита.
После вывода программа должна сделать принудительную запись буфера вывода (в C++ это делает endl, в C
нужно использовать fflush(stdout), в Pascal – flush(output)).
После вывода попытки программа получает строку, содержащую одно целое число – количество
букв, находящихся на той же позиции, что и в задуманной перестановке.
Когда последовательность будет угадана, программа должна вывести
содержащую символы ! и пробел, после которых следует угаданная перестановка.
Если программа не найдет перестановку за 300 попыток, то программа получает вердикт "Неверный ответ".
Вывод программы
? AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
? ABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
? ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
? ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxzy
! ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxzy