"""
Кодирование длин серий

Кодирование длин серий (RLE) — алгоритм сжатия данных, заменяющий повторяющиеся символы на один символ и число его повторов.
 Серией называется последовательность, состоящая из нескольких одинаковых символов (более одного).
  При кодировании строка одинаковых символов, составляющих серию, заменяется строкой, содержащей сам повторяющийся символ
   и количество его повторов.

Например, строка AAAABBB будет сжата в строку A4B3, а строка AAAAAAAAAAAAAAABAAAAA — в строку A15BA5.

Вам дана сжатая строка, найдите длину исходной строки. Длина исходной строки не превышает 1000 символов, все символы
 исходной строки — заглавные буквы латинского алфавита. Ограничение времени: 2 с, ограничение памяти: 264 МБ.

Формат ввода
В единственной строке входных данных содержится непустая строка. Гарантируется, что эта строка является результатом
 корректного RLE-сжатия некоторой строки.

Формат вывода
Выведите длину исходной строки.
"""


def rle_counter(string :str) -> int:
    """
    ф-я подсчета элементов реальной строки на основе зашифрованной
    :param string: зашифрованная строка
    :return: зашифрованная строка
    """
    result = 0
    number = None
    last_element = None
    for i in string:
        try:
            int(i)
        except:
            if last_element == 'letter':
                result += 1
            else:
                last_element = 'letter'
                if number:
                    result += int(number)
                    number = None
        else:
            if last_element == 'number':
                number += i
            else:
                last_element = 'number'
                number = i
    result += int(number)
    return result


if __name__ == '__main__':
    string = 'AB42A2C30'
    print(rle_counter(string))
