0
0 комментариев

Варе подарили на День Рождения браслет, на котором по кругу записаны строчные буквы латинского алфавита. Изучив внимательно браслет, Варя поняла, что на нём указано какое‑то слово тарабарского языка, состоящее из N букв. Особенность слов тарабарского языка в том, что в них всегда от одной до восьми букв «a».

Подумав, Варя решила, что ей нужен не браслет, а цепочка, и захотела разрезать браслет ровно в одном месте, чтобы получившееся слово было палиндромом. Помогите Варе подсчитать количество способов разрезать браслет так, чтобы получилось слово‑палиндром. Определите позиции возможных разрезов — номера букв, после которых можно разделить браслет (буквы в слове пронумерованы от 1 до N).

Браслет из первого теста

Для справки: палиндром — слово, одинаково читающееся в обоих направлениях, например, «abba».

Формат входных данных

Первая строка содержит целое число N (1≤N≤2⋅106) — длину слова на тарабарском языке.

Вторая строка содержит последовательность из N строчных букв латинского алфавита — слово на тарабарском языке.

Формат выходных данных

В первой строке выведите целое число K — количество способов разрезать браслет.

В следующих K строках выведите позиции возможных разрезов. Выводить позиции разрешено в любом порядке.

Пояснение

В первом тесте разрезать браслет можно двумя способами. Можно сделать разрез между буквами b, тогда получится палиндром «baab», либо между буквами a, тогда получится палиндром «abba».

В втором тесте нельзя разрезать браслет так, чтобы получился палиндром.

Ввод

Вывод

Arnfinn ответил на вопрос 27.10.2022