Праздничные вычисления по сахарному модулю
시간 제한2초메모리 제한1024 MB
덧셈, 뺄셈, 2배, 2로 나누기와 1000칸 메모리만 있는 계산기로 두 수의 비트 XOR을 계산하는 과정을 출력한다.
문제
Как вы уже знаете, Ральф мечтает стать лучшим в какой-нибудь игре, завоевать в ней золотую медаль и стать настоящим героем! На этот раз Ральф решил всем показать что он не только сильный и храбрый, но еще и очень умный, именно поэтому он отправился в игру <<Праздничные вычисления по сахарному модулю>>.
Цель игры проста: игроку даются два числа. Используя калькулятор, требуется найти . Выражение обозначает применение операции побитового исключающего или (побитового сложения по модулю 2) к числам и . Данная операция есть во всех современных языках программирования, например, в языке C++ и Java она обозначается \^, в Pascal --- xor.
Калькулятор хранит в памяти все числа, которые были получены игроком во время игры, а так же умеет складывать числа, вычитать их, умножать или целочисленно делить число на . При этом память калькулятора, конечно же, ограничена: он не может хранить более целых чисел. Кроме того, все числа, хранящиеся в калькуляторе должны лежать в диапазоне от до включительно. Изначально в памяти калькулятора лежат числа и . Игрок может использовать только числа, хранящиеся в памяти калькулятора.
Ральф --- очень умный парень, вот только с Ванилопой снова стряслась беда, он спешит к ней на помощь. Поэтому стать лучшим в игре <<Праздничные вычисления по сахарному модулю>> придется именно вам!
입력
В первой строке даны два целых числа и --- числа, которые изначально лежат в памяти калькулятора ().
출력
В первой строке выведите --- количество действий, которое нужно совершить игроку для победы в игре ().
В каждой из последующих строк выведите сначала тип действия, который вы хотите совершить на текущем шаге:
- --- сложить два числа
- --- вычесть из первого числа второе
- --- умножить число на
- --- целочисленно поделить число на .
Если тип операции или , далее через пробел выведите два числа --- номера итераций, на которых каждое из используемых чисел было получено. Если тип операции или , выведите одно число --- номер итерации, на которой используемое число было получено.
Например, чтобы вычесть из числа, полученного на итерации 3 число, полученное на итерации 4, следует вывести << >>.
Будем считать, что числа и из входных данных были получены на -й и -й итерациях соответственно.
Обратите внимание, что число должно быть получено на последней итерации. От вас не требуется найти минимальный по количеству действий ответ.