Language:

English
Russian

Практикум по программированию

Для участников:
Регистрация  ||   Вход
Список соревнований
Вы не вошли в систему! Вход или регистрация.

Упаковка

Time limit:1 sec.
Memory limit: 65536 KByte

Билл пытается компактно представить последовательность заглавных латинских букв от 'A' до 'Z', с учетом повторяющихся последовательностей в ней. Например, возможный способ представить последовательность AAAAAAAAAABABABCCD - есть 10(A)2(BA)B2(C)D. Билл ввел формальное понятие упакованной последовательности так:

- последовательность, содержащая один символ из диапазона 'A'..'Z' считается упакованной последовательностью. Ее распаковка возвращает тот же символ.

- если S и Q - упакованные последовательности, то SQ - также упакованная последовательность. Причем, если результатом распаковки S является S', а Q - Q', то SQ распаковывается в S'Q'.

- если S - упакованная последовательность, то X(S) - также упакованная последовательность, где X - десятичное целое число, большее 1. Если S распаковывается в S', то X(S) распаковывается в S', повторенную X раз.


Согласно этому определению легко распаковать любую запакованную последовательность. На Билл более заинтересован в обратной операции. Он хочет запаковать данную последовательность так, чтобы результирующая запакованная последовательность содержала как можно меньше символов (включая цифры и скобки).

Исходные данные

Входные данные содержат одну строку, состоящую не менее, чем из одного и не более чем из 100 символов в диапазоне 'A'..'Z'.

Результат

Запишите в выходной файл одно число - длину кратчайшего из вариантов запаковки исходной последовательности.

Примеры

Исходные данныеРезультат
AAAAAAAAAABABABCCD12
NEERCYESYESYESNEERCYESYESYES14

Пояснение. Упакованные строки из примеров:
9(A)3(AB)CCD
2(NEERC3(YES))

© Copyright ВоГУ, АВТ, Носов Д.А., Смоленцев К.Н.