Submit solution


Очки: 160
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem types
Allowed languages
C++, Python

Архиватор сжимает строку с помощью алгоритма 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

Комментарии

Еще нет ни одного комментария.