Дима дописывает к слову по одной букве s1, …, sn и после каждой буквы просит Мишу
сказать, на сколько увеличилось число различных непустых подстрок-палиндромов после приписывания.
Две подстроки считаются различными, если они различаются как строки.
Какие n чисел назовёт Миша, если он никогда не ошибается?
Исходные данные
На вход подаётся строка s1 … sn из строчных латинских букв ‘a’ и ‘b’ (1 ≤ n ≤ 5 000 000).
Результат
Выведите n чисел подряд без пробелов. При этом i-е число должно равняться количеству
различных подстрок-палиндромов префикса s1 … si за вычетом этой же величины для s1 … si−1. Первое число должно равняться единице.
Пример
исходные данные | результат |
---|
abbbba
| 111111
|
Замечания
Мы гарантируем, что жюри располагает решением на языке С++, укладывающимся в ограничение по времени хотя бы в два раза. Мы не гарантируем, что существует решение этой задачи на других языках (в том числе на Java).
Автор задачи: Михаил Рубинчик (Подготовка — Кирилл Бороздин)
Источник задачи: Ural FU Dandelion contest. Petrozavodsk training camp. Summer 2014