Обозначение Diputs
Обозначение Diputs используется для представления неотрицательных целых чисел и состоит из 9 символов, начиная с наименее значимого:
_.,- ='^
Каждый символ в обозначении Diputs имеет ограниченное количество вхождений.
Число в обозначении Diputs записывается начиная с самой значимой цифры, например:
"""^^ -,..__
Рассмотрим все возможные представления чисел в обозначении Diputs и упорядочим их следующим образом: число A следует за числом B, если в представлении A больше символов '"', чем в B. Если количество символов '" одинаково, сравниваем количество символов '^', и так далее. Затем мы нумеруем эту последовательность, начиная с 1, что создает карту, определяющую, как числа представлены в обозначении Diputs. Ноль представлен символом 'O' (код 79).
Примеры:
Входные данные
На вход подаются числа в десятичной системе, числа в обозначении Diputs и некоторый другой текст.
Выходные данные
Вы должны вывести те же числа, но в другом обозначении: числа в десятичной системе преобразовать в обозначение Diputs, а числа в обозначении Diputs преобразовать в десятичные. Все числа на входе неотрицательные и не превышают максимальное число, представимое в обозначении Diputs. Числа могут не быть разделены пробелами или другими символами. Вы должны анализировать числа жадным образом: при чтении числа вы должны брать максимальное количество символов, которые могут образовать десятичное или Diputs представление числа. Например, если у вас есть три символа подчеркивания ("___"), вы должны разобрать их как числа "__" (2) и "_" (1) в обозначении Diputs. В этом случае результирующая строка будет "21". При разборе десятичных чисел ваша программа должна работать аналогично. Не должно быть ведущих нулей в десятичных числах. Например, вы должны разобрать строку "020" как десятичные числа 0 и 20, и результат будет "O,..__". Если вы получите десятичное число больше максимального числа, представимого в обозначении Diputs, вы должны разделить его на два или более десятичных числа жадным образом, как описано.
Некоторые примеры:
Если общее количество чисел на входе нечетное, вы должны отсортировать числа в порядке возрастания. Только числа должны быть переупорядочены; обозначение числа в определенном месте не должно изменяться. Например, для ввода "2 O _" вы сначала должны распознать обозначение (десятичное, diputs, diputs), затем преобразовать его в "__ 0 1", инвертируя обозначение (теперь это diputs, десятичное, десятичное), и затем отсортировать числа, сохраняя обозначение. Таким образом, отсортированный массив — это 0, 1 и 2, обозначения — (diputs, десятичное, десятичное), так что ответ должен быть "O 1 2". Посмотрите на пример входных данных для лучшего понимания.
Размер входных и выходных данных не превысит 1 мегабайт (10^6 байт).