Skip to content

Криптограмма

Mikhail Gnedashev edited this page May 19, 2018 · 1 revision
  • Категория: Crypto
  • Стоимость: 250
  • Автор: Александр Котов
  • Репозиторий

Описание

Это бармен из бара «100 рентген», помнишь меня? Удалось выяснить, что в документах упоминается некая лаборатория X-18. Мне сказали, что по описанию она очень похожа на подземные помещения Тёмной долины. Думаю, там находится недостающая часть документов. Правда, для открытия дверей лаборатории нужен электронный ключ.

Что даётся

  • код программы
  • выходные данные

Решение

В задании дана программа и её вывод. Как можно догадаться, погуглив, перед нами программа написанная на эзотерическом языке Chef. Начнем разбираться. Строки Flag with spices и This recipe cook a flag with spice являются названием и описанием программы. После Ingredients объявляются переменные используемые в программе, где жидкие ингредиенты - это цифры, твердые - коды символов. Далее идет директива Method, за ней начинается код программы. Конструкция Verb variable ... Verb variable until verbed - это цикл, каждую итерацию переменная variable уменьшается на 1, пока не достигнет 0. Первый цикл, который мы видим Wash water ... Wash water until washed - здесь считываются данные с консоли и помещаются в mixing bowl. В языке Chef mixing bowl - это стек (первый зашёл - последний вышел). Следующий цикл Chop products ... Chop products until choped - здесь командой Fold снимается элемент с вершины стека 1, затем командой Put перекладывается в стек номер 2, после Add добавляет к значению вершины стека 2 текущее значение products, снова снимаем вершину стека 1, но кладем уже в стек 3 и прибавляем products к значению вершины стека 3. После этого цикла подготавливаем стек 2, 3 и выводим на консоль результат. Возьмем вывод программы полученный из задания и проделаем все операции в обратном порядке и получим флаг.