Codeforces Round 134 (Div. 1) |
---|
Закончено |
Числа Фибоначчи представляют собой последовательность: f0 = 0, f1 = 1, f2 = 1, f3 = 2, f4 = 3, f5 = 5, ..., fn = fn - 2 + fn - 1. Таким образом, каждое следующее число является суммой двух предыдущих.
Байтек разработал изящный способ вычислять числа Фибоначчи на доске. Сначала он пишет 0. Затем под ним он пишет 1. Затем он выполняет две следующих операции:
Если он выполнит n операций, начиная с операции «T», чередуя операции «T» и «B» (так, чтобы последовательность операций имела вид «TBTBTBTB...»), то последнее записанное число будет равно fn + 1.
К сожалению, Байтек иногда ошибается и повторяет операцию два или более раз подряд. Например, если Байтек хочет посчитать f7, то ему надо выполнить n = 6 операций: «TBTBTB». Если вместо этого Байтек выполнит последовательность операций «TTTBBT», то он сделает 3 ошибки и получит неверный результат, что седьмое число Фибоначчи равно 10. Количество ошибок в последовательности операций — это количество соседних равных операций («TT» или «BB»).
Вам дано число n — количество операций, выполненных Байтеком в попытке посчитать fn + 1 и число r, результат его вычислений (то есть, последнее написанное на доске число). Найдите наименьшее возможное количество ошибок, сделанных Байтеком, и любую возможную последовательность из n операций с найденным минимальным количеством ошибок, результатом которых было бы число r.
Предположим, что Байтек всегда правильно начинает последовательность операций, с операции «T».
Первая строка содержит два целых числа n и r (1 ≤ n, r ≤ 106).
Первая строка выходного файла должна содержать единственное число — наименьшее возможное количество ошибок, допущенное Байтеком. Вторая строка должна содержать n символов, начинающихся с «T», описывающих одну из возможных последовательностей операций с таким количеством ошибок. Каждый символ должен быть либо «T», либо «B».
Если искомой последовательности не существует, выведите «IMPOSSIBLE» (без кавычек).
6 10
2
TBBTTB
4 5
0
TBTB
2 1
IMPOSSIBLE
Название |
---|