Позначення Diputs#6740

Позначення Diputs

0,5 секунди
256 мегабайтів
Дуже складна

Нотація Diputs — це спосіб представлення невід'ємних цілих чисел за допомогою спеціальних символів. Вона використовує символів, починаючи з найменш значущого:

\textbf{_.,-~='^}

Кожен символ має обмежену кількість використань у представленні числа.

Число в нотації Diputs записується, починаючи з найзначущішої цифри, наприклад:

\textbf{"""^^~~-,..__}

Усі можливі представлення чисел у цій нотації розташовуються в певному порядку. Число йде після числа , якщо в його представленні більше символів (найзначуща цифра), ніж у . Якщо кількість символів однакова, порівнюється кількість символів ^, і так далі. Потім ми нумеруємо цю послідовність, починаючи з , що створює карту для визначення, як числа представлені в нотації Diputs. Нуль представлений символом (код ).

Приклади:

Вхідні дані

Вхід містить числа в десятковій нотації, числа в нотації Diputs, а також інший текст.

Вихідні дані

Ви повинні вивести ті ж числа, але в іншій нотації: числа в десятковій нотації повинні бути перетворені в нотацію Diputs, а числа в нотації Diputs — у десяткові. Усі числа на вході є невід'ємними і не перевищують максимальне число, яке можна представити в нотації Diputs. Можливо, що числа не будуть розділені пробілом або іншими символами. Ви повинні розбирати числа жадібним способом: при читанні числа ви повинні брати максимальну кількість символів, які можуть утворити десяткове або Diputs представлення числа. Наприклад, якщо у вас є три символи підкреслення (\textbf{___}), ви повинні розібрати це як числа \textbf{__} () і \textbf{_} () в нотації Diputs. У цьому випадку, результуючий рядок буде . При розборі десяткових чисел ваша програма повинна працювати так само. Не повинно бути провідних нулів у десяткових числах. Наприклад, ви повинні розібрати рядок як десяткові числа і , і результат буде O,..__ . Якщо ви отримаєте десяткове число більше, ніж максимальне число, яке можна представити в нотації Diputs, ви повинні розділити його на два або більше десяткових чисел жадібним способом, як описано.

Деякі приклади:

Оскільки ми вважаємо, що ваше завдання занадто легке, ви повинні сортувати числа в порядку зростання, якщо загальна кількість чисел на вході непарна. Тільки числа повинні бути переупорядковані; нотація числа в певному місці не повинна змінюватися. Наприклад, для входу 2 O _ ви повинні спочатку розпізнати нотацію (десяткова, diputs, diputs), потім перетворити її в __ 0 1, інвертуючи нотацію (тепер це diputs, десяткова, десяткова), і потім відсортувати числа, зберігаючи нотацію. Таким чином, відсортований масив — це , і , нотації — (diputs, десяткова, десяткова), тому відповідь повинна бути . Подивіться на зразок входу для кращого розуміння.

Розмір вхідних і вихідних даних не перевищуватиме мегабайт (10^6 байт).

Приклади

Приклад 1

Loading
Loading