Сжатие RLE
Просмотр в формате PDFАрхиватор сжимает строку с помощью алгоритма Run-Length Encoding (RLE).
Дана непустая строка s, состоящая из печатаемых ASCII-символов с кодами от 33 до 126 включительно. В строке нет пробелов и управляющих символов, но могут встречаться буквы, цифры и знаки препинания.
Кодирование выполняется слева направо. Строка разбивается на максимальные подряд идущие группы одинаковых символов. Каждая группа длины L, состоящая из символа c, записывается в архив так:
- если
L = 1, то записывается просто символc; - если
L >= 2, то записывается запись вида<L>c, где<L>— десятичная запись числаLбез ведущих нулей.
Однако для цифр используется особое правило, чтобы закодированная строка декодировалась однозначно. Если символ c — это цифра от '0' до '9', то даже при L = 1 такая группа должна кодироваться как 1c, а не просто c.
Для групп цифр длины не меньше 2 используется обычная запись <L>c.
Требуется построить строку, которую выдаст архиватор после сжатия исходной строки.
Входные данные
В единственной строке задана исходная строка s (1 <= |s| <= 10^5) из печатаемых ASCII-символов с кодами от 33 до 126 включительно.
Ввод осуществляется из стандартного ввода.
Выходные данные
Выведите сжатую строку.
Вывод осуществляется в стандартный вывод.
Ограничения
1 <= |s| <= 10^5- Каждый символ строки имеет ASCII-код от
33до126 - В строке отсутствуют пробелы и управляющие символы
Примеры
Пример 1
Входные данные
a
Выходные данные
a
Пример 2
Входные данные
7
Выходные данные
17
Комментарии