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