Асимметричный диалог (НТО 25/26 :: ТБС)
Условие
Умный робот-пылесос фирмы «АБ-Мур» несколько лет прекрасно справлялся со своей основной задачей, как в один прекрасный день перестал реагировать на команды и вместо этого тихо мигал красным огоньком. Коля Четвёркин поискал в интернете и узнал, что недавно на центральном сервере обновили ключи шифрования, и если пылесос не успел их синхронизировать, нужно сделать это вручную. А именно – зайти в консоль прошивки и запустить утилиту синхронизации. Её название отличается от пылесоса к пылесосу, но известно, файл утилиты имеет расширение «.FLG» и лежит в начальном каталоге.
Да, в пылесосе есть настоящая операционная система, и у неё есть много команд. Нас будут интересовать шесть:
- `DIR` – выводит построчно названия файлов в текущем каталоге.
- `EXEC a` – запускает файл `a` (если он существует и исполняемый).
- если файл не существует, система ответит `ERROR NOT EXIST`.
- если файл не исполняемый, система ответит `ERROR NOT EXECUTABLE`.
- `COPY a b` – копирует файл `a` в файл `b` (если `a` существует, а `b` – не существует).
- если `b` существует, система ответит `ERROR EXIST`.
- `DEL a` – удаляет файл `a` (если он существует и не исполняемый).
- если файл нельзя удалить, система ответит `ERROR CANT DELETE`
- `TRUE` – ничего не делает.
- `EXIT` – завершает сеанс.
Если команда не существует, система отвечает `ERROR SYNTAX`. Если количество параметров не совпадает с необходимым для команды, система отвечает "ERROR PARAMETER". Если указанный файл не существует, система отвечает `ERROR NOT FOUND`, если не указано иначе. Если команда выполнена успешно, то последней отдельной строкой (после вывода самой команды) возвращается `OK`.
Все эти команды работают благодаря интерпретатору команд, который тоже лежит в начальном каталоге. И его название тоже отличается между моделями пылесосов. В интернете пишут, что варианта три – `COMMAND.COM`, `EXECUTOR.EXE` или `INTERPRT.INT`.
Но подключившись и выполнив первую команду, вместо файлов Коля увидел странные названия. Оказалось, что буквы и цифры в выводе перемешаны. То ли генератор вывода сломан, из-за чего вместо одной буквы выводится другая, то ли производитель специально подстроил шифрование. В пользу последней версии играет вычитанное в интернете предупреждение: если попытаться обратиться к интерпретатору не той версии или выполнить более 10 команд за сеанс, система заблокируется, и пылесос точно придётся нести в сервисный центр.
Коля очень не хочет нести пылесос в сервис и надеется отремонтировать его своими силами. Помогите Коле пробиться через защиты от производителя и напишите программу, которая запускает утилиту (или хотя бы интерпретатор команд).
Формат входных данных
Ваше решение отправляет команду (одна строка).
Формат выходных данных
Строки команд согласно протоколу.
Для решения этой задачи у вашей команды есть 20 попыток.
Видео-разбор