8VC Venture Cup 2017 - Final Round |
---|
Закончено |
Юля проводит эксперимент в своей лаборатории. Она поместила несколько колоний светящихся бактерий в горизонтальную пробирку. Бактерии разного типа можно отличить по цвету. Юля обозначает типы бактерий маленькими латинскими буквами «a», ..., «z».
Пробирка разделена на n областей, расположенных в ряд друг за другом. В каждый момент времени любая область занята ровно одной колонией бактерий определенного типа. Таким образом, популяцию пробирки в любой момент можно описать строкой из n латинских букв.
Иногда какая-то из колоний может решить захватить другую колонию в одной из соседних областей. В этом случае атакованная колония немедленно уничтожается и заменяется колонией того же типа, что и атакующая колония, при этом атакующая колония сохраняет свой тип. Колония может атаковать только соседей внутри пробирки. Одновременно может происходить не более одного нападения.
В качестве примера рассмотрим пробирку с популяцией «babb». Для следующей атаки существует шесть вариантов:
Предсказать последовательность нападений довольно трудно. Юля интересуется, сколько способов расположения бактерий в пробирке может получится после некоторой последовательности нападений (при этом возможно, что нападений не будет совсем). Поскольку ответ может быть большим, найдите его по модулю 109 + 7.
Первая строка содержит целое число n — количество областей в пробирке (1 ≤ n ≤ 5 000).
Вторая содержит n маленьких латинских букв, описывающих исходную популяцию бактерий в пробирке.
Выведите одно число — ответ на задачу по модулю 109 + 7.
3
aaa
1
2
ab
3
4
babb
11
7
abacaba
589
В первом примере популяция не может измениться, поскольку все колонии имеют один и тот же тип.
Во втором примере возможны три конфигурации: «ab» (нападений не было), «aa» (первая колония захватила вторую) и «bb» (вторая колония захватила первую).
Для получения ответа на третий пример, помните, что могло произойти больше одного нападения.
Название |
---|