eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Пирамиды

Пирамиды

Легко построить пирамиду, если у Вас имеется набор одинаковых кубиков. Например, на плоском основании Вы кладете, скажем, \textbf{10}×\textbf{10} кубиков в форме квадрата. Сверху квадрата по центру кладете \textbf{9}×\textbf{9} кубиков. Продолжая указанным образом, Вы заканчиваете постройку одним кубиком, который является вершиной пирамиды. Высота построенной пирамиды равна длине основания, которая в нашем случае равна \textbf{10}. Такую пирамиду будем называть \textit{высокой}. Если Вы считаете, что высокая пирамида слишком крутая, можно поступить иначе. На квадратное основание \textbf{10}×\textbf{10} положим квадрат \textbf{8}×\textbf{8}, затем квадрат \textbf{6}×\textbf{6}, и так далее, закончив верхним слоем \textbf{2}×\textbf{2} (если начать постройку пирамиды с основания нечетной длины, тогда ее верхушка будет состоять из одного кубика). Высота такой пирамиды составит половину длины основания. Будем называть такую пирамиду \textit{низкой}. Однажды (в достаточно далеком прошлом) жил фараон, который унаследовал от своего отца огромное количество каменных кубов. Он приказал своему архитектору построить пирамиду, в обязательном порядке использовав все камни до единого. Архитектор любезно объяснил, что не из любого количества камней можно составить пирамиду. Из \textbf{10} кубов можно построить низкую пирамиду с основанием \textbf{3}. Из \textbf{5} кубов можно построить высокую пирамиду с основанием \textbf{2}. Однако из \textbf{7} кубов нельзя построить никакую пирамиду. Фараон не был в восторге, однако после непродолжительного обдумывания он придумал новые ограничения. \begin{enumerate} \item Использованы должны быть все кубы. \item Можно построить несколько пирамид, однако их количество должно быть наименьшим. \item Все пирамиды должны быть различными. \item Высота каждой пирамиды должна быть как минимум \textbf{2}. \item Согласно выше приведенному, наибольшая пирамида должна быть как можно больше (то есть содержать наибольшее число кубов). \item Согласно выше приведенному, следующая наибольшая пирамида должна быть тоже как можно больше. \item И так далее... \end{enumerate} Рисуя фигуры и картины на песке, архитектор через некоторое время нашел наилучшее решение. Напишите программу, которая определит, как по заданному числу кубов удовлетворить все ограничения фараона. \InputFile Состоит из нескольких тестов, каждый из которых находится в отдельной строке. Каждый тест содержит число \textbf{c} (\textbf{1} ≤ \textbf{c} ≤ \textbf{10^6}) - имеющееся количество кубов. Последняя строка содержит один ноль и не обрабатывается. \OutputFile Для каждого теста выведите его номер и набор построенных пирамид. Пирамиды следует упорядочить, начиная вывод с наибольшей. Каждая пирамида задается размером основания, за которым следует \textbf{L} для низких пирамид и \textbf{H} для высоких пирамид. Если две различные пирамиды состоят из одинакового числа кубов, сначала следует выводить более высокую пирамиду. Вывести "\textbf{impossible}", если невозможно удовлетворить всем условиям фараона. Следуйте за приведенным в примере форматом вывода.
Лимит времени 5 секунд
Лимит использования памяти 256 MiB
Входные данные #1
29
0
Выходные данные #1
Case 1: 3H 3L 2H
Источник ICPC 2011 World Finals