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

Быстрое возведение в степень

Быстрое возведение в степень

Очень часто возникает задача эффективного вычисления \textbf{x^n} по данным \textbf{x} и \textbf{n}, где \textbf{n} - положительное целое число. Предположим, например, что необходимо вычислить \textbf{x^16}. Можно просто начать с \textbf{x} и \textbf{15} раз умножить его на \textbf{x}. Но тот же ответ можно получить всего за четыре умножения, если несколько раз возвести в квадрат получающийся результат, последовательно вычисляя \textbf{x^2}, \textbf{x^4}, \textbf{x^8}, \textbf{x^16}. Эта же идея, в целом, применима к любому значению \textbf{n} следующим образом. Запишем \textbf{n} в виде числа в двоичной системе счисления (убирая нули слева). Затем заменим каждую "\textbf{1}" парой символов \textbf{SX}, а каждый "\textbf{0}" - символом \textbf{S }и вычеркнем крайнюю слева пару символов "\textbf{SX}". Результат представляет собой правило вычисления \textbf{x^n}, в котором "\textbf{S}" трактуется как операция возведения в квадрат, а "\textbf{X}" - как операция умножения на \textbf{x}. Например, \textbf{n=23} имеет двоичное представление \textbf{10111}. Таким образом, мы формируем последовательность \textbf{SXSSXSXSX}, из которой удаляем начальную пару \textbf{SX} для получения окончательного правила \textbf{SSXSXSX}. Это правило гласит, что необходимо "возвести в квадрат, возвести в квадрат, умножить на x, возвести в квадрат, умножить на x, возвести в квадрат и умножить на x", т.е. последовательно вычислить значения \textbf{x^2}, \textbf{x^4}, \textbf{x^5}, \textbf{x^10}, \textbf{x^11}, \textbf{x^22}, \textbf{x^23}. Вам нужно для заданного \textbf{n} сформулировать соответствующее правило быстрого возведения числа \textbf{x} в степень \textbf{x^n}. \InputFile Одно натуральное число \textbf{n}, не превышающее \textbf{2·10^9}. \OutputFile Выведите строку для правила возведения числа \textbf{x }в степень \textbf{n} для получения \textbf{x^n}.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
23
Çıxış verilənləri #1
SSXSXSX
Müəllif Анатолий Присяжнюк
Mənbə II этап Всеукраинской олимпиады школьников 2012-2013, г. Бердичев