Олимпиадный тренинг

Задача . B. Минимальное число шагов


Дана строка из букв «a» и «b». Мы хотим произвести над ней некоторые операции. На каждом шагу мы выбираем одну из подстрок «ab» в данной строке и заменяем ее на строку «bba». Если в строке нет подстрок «ab», то мы останавливаемся. Выведите минимальное число шагов, которое требуется нам сделать перед тем, как мы остановимся, по модулю 109 + 7.

Строка «ab» встречается как подстрока, если где-то есть буква «b» сразу после буквы «a».

Входные данные

Единственная строка содержит изначальную строку, состоящую только из букв «a» и «b», имеющую длину от 1 до 106.

Выходные данные

Выведите минимальное число шагов по модулю 109 + 7.

Примечание

Первый пример: «ab»  →  «bba».

Второй пример: «aab»  →  «abba»  →  «bbaba»  →  «bbbbaa».


Примеры
Входные данныеВыходные данные
1 ab
1
2 aab
3

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w641
Комментарий учителя