Фуршет
Ограничения: время – 2s/4s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Маша знает 26 рецептов закусок, которые она обозначает буквами от a до z.
Для фуршета она приготовила несколько закусок,
выбирая перед началом приготовления очередной закуски совершенно случайным образом один из 26 рецептов,
и расставила их на круглом столе в порядке приготовления.
Пришедшие гости подходят к любой точке стола и, двигаясь по часовой или против
часовой стрелки, пробуют от 1 до `N` закусок подряд.
Напишите программу, которая определит количество вариантов проб длиной не более `N`, которые могут сделать гости,
если пробы считаются одинаковыми, когда они имеют одинаковую длину и одинаковые рецепты закусок в тех же позициях.
Первая строка ввода содержит `N` (`2\ ≤\ N\ ≤\ 100000`).
Вторая строка ввода содержит последовательность из строчных латинских букв длиной от 2 до
50000 – порядок приготовления закусок, полученный указанным выше способом.
Вывести одно целое число – количество вариантов проб.
Пояснение к примеру 1: возможны следующие пробы a, b, ab, ba, aba, bab.
Пояснение к примеру 2: возможны следующие пробы e, r, j, er, re, rj, jr, je, ej, erj, jre, rje, ejr, jej, eje, jer, rej.