eolymp
bolt
Try our new interface for solving problems
Məsələlər

Японский компьютер

Японский компьютер

Как известно, для обороны границ японские инженеры разрабатывают огромных боевых человекоподобных роботов. Каждый такой робот управляется японским компьютером. Понятно, что для повышения эффективности робота программа в компьютере должна быть как можно более оптимальной, чтобы компьютер мог выполнять как можно больше программ за как можно меньшее время. На данный момент японским программистам задали следующую задачу (её смысл секретен, поэтому здесь его описывать нельзя): изначально в памяти компьютера находится единственное число \textbf{x}. Требуется получить в его памяти следующие числа: \textbf{a_1x}, \textbf{a_2x}, ..., \textbf{a_nx}. При этом компьютер может выполнять следующие операции: \begin{itemize} \item Сложение двух чисел \item Вычитание двух чисел \item Побитовый сдвиг влево (сдвиг на \textbf{k} бит эквивалентен умножению на \textbf{2^k}) \end{itemize} Все полученные промежуточные значения сохраняются в памяти, так что ими можно пользоваться при вычислении других значений. При вычислениях никогда не должно получаться значение большее, чем \textbf{42x}. Гарантируется, что при выполнении этого ограничения, в компьютере не происходит переполнений. Также, компьютер не может работать с отрицательными числами, так что вычитать большее число из меньшего также запрещено. Порядок, в котором в памяти будут появляться числа \textbf{a_1x}, \textbf{a_2x}, ..., \textbf{a_nx}, не имеет значения. \InputFile В первой строке находится число \textbf{n} - количество требуемых значений (\textbf{1} ≤ \textbf{n} ≤ \textbf{41}). Во второй строке находится \textbf{n} чисел \textbf{a_i} (\textbf{2} ≤ \textbf{a_i} ≤ \textbf{42}). Все \textbf{a_i} различны. Само число \textbf{x} вам не дано, так что ваша последовательность операций должна быть верной для любого \textbf{x}. \OutputFile В первой строке выведите единственное число - минимальное количество требуемых операций. Далее выведите требуемые операции в следующем формате: \begin{itemize} \item Сдвиг влево \textbf{ax} на \textbf{k} бит: \textbf{a}<<\textbf{k} \item Сложение \textbf{ax} и \textbf{bx}: \textbf{a+b} \item Вычитание \textbf{ax} из \textbf{bx}: \textbf{b-a} \end{itemize} Запись операций не должна содержать пробелов.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
3
3 5 18
Çıxış verilənləri #1
5
1<<1
1<<4
1+2
2+3
2+16
Müəllif Денис Денисов, Юрий Петров
Mənbə ЛКШ-2011 Севастополь 08.08.2011 д.2 1-я лига