Шифрування корупційних схем
Limits: 2 sec., 256 MiB
Задачі «Шифрування корупційних схем» і «Дешифрування корупційних схем» є пов’язаними між собою, але їх можна розв’язувати окремо одну від одної. Наступні чотири абзаци є однаковими в обох умовах.
В офісі ЗЕника працює один татарин. Щомісяця він придумує нову геніальну корупційну схему й охоче ділиться нею із Зеником у повідомленні. Цього місяця знову не обійшлося без нової хитрої схеми. Однак Татарин — не дурний. Він знає, що повідомлення зі схемою для Зеника можуть перехопити правоохоронці. Тому він шифрує його алгоритмом кодування довжин серій.
Кодування довжин серій (англ. Run-length encoding, RLE) — простий алгоритм стиснення даних, який оперує серіями даних, тобто послідовностями, у яких один і той ж символ зустрічається кілька разів поспіль. При кодуванні рядок однакових символів, що становлять серію, замінюють рядком, який містить сам повторюваний символ і кількість його повторів (З Вікіпедії).
Розгляньмо приклад кодування рядка
AAAABBBBBBBACBBBBDDDDDDDDDDD
. Якщо застосувати алгоритм RLE
до нього, то отримаємо 4A7B1A1C4B11D
. Останній запис
інтерпретується як чотири A
, сім B
, одна
A
, одна C
, чотири B
, одинадцять
D
.
Зверніть увагу, що 4A4B3B1A1C4B7D4D
не є правильно
закодованим рядком — треба записувати цілі серії.
4A7BAC4B11D
також не є правильно закодованим рядком —
навіть якщо довжина серії символа дорівнює одиниці, то все одно потрібно
записувати 1
.
Зашифруйте корупційну схему татарина алгоритмом RLE.
Input
Вхідні дані містять єдиний рядок s — корупційну схему татарина.
Output
Виведіть закодовану за алгоритмом RLE корупційну схему.
Довжина закодованої схеми не перевищуватиме 105 символів.
Constraints
1≤|s|≤105,
s складається з великих латинських літер.
Samples
Input (stdin) | Output (stdout) |
---|---|
AAAABBBBBBBACBBBBDDDDDDDDDDD | 4A7B1A1C4B11D |