0008. Филя

Имя входного файла: filya.in
Имя выходного файла: filya.out
Ограничение по времени: 2 s
Ограничение по памяти: 64 megabytes

Филя √ ядерный физик, и сейчас он занимается исследованием антиматерии. В лабораторных условиях ему удалось получить антиматерию нескольких видов. Полученный материал был размещен в нескольких стоящих в ряд контейнерах таким образом, что в каждом контейнере оказалась антиматерия только одного вида.

У Фили есть сложный прибор, который позволяет преобразовать антиматерию внутри любого контейнера в любой другой нужный ему вид. Каждый раз этот прибор можно применить к содержимому одного единственного контейнера. При этом, если в одном или нескольких соседних контейнерах была точно такая же антиматерия, то она также меняет свой вид.

Для дальнейших исследований Филе во всех контейнерах обязательно нужно получить антиматерию одного, неважно какого, вида. Но поскольку применение прибора является очень энергоемкой операцией, Филя хочет минимизировать количество его запусков. Прибор очень большой, он установлен и может применяться только к содержимому первого контейнера. Помогите Филе определить минимальное количество запусков прибора, необходимое для получения антиматерии одного вида во всех контейнерах.

Формат входного файла

Во входном файле задана единственная строка, состоящая из заглавных латинских букв длиной от 1 до 255 символов. Символы строки определяют вид антиматерии в соответствующих контейнерах.

Формат выходного файла

В выходной файл необходимо вывести единственное число - ответ на поставленный вопрос.

Пример:

filya.infilya.out
ABBCCA 3

Примечание

Филя должен выполнить следующие операции: ABBCCA → BBBCCA → CCCCCA → AAAAAA


Источник: Командное школьное первенство Республики Карелия по программированию, май 2008.

Обсудить       Отправить решение



Версия для печати