10948. Робот


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Студенти одного з вишів спроектували робота для часткової автоматизації процесу збирання авіаційного двигуна.

У процесі збирання двигуна можуть зустрічатися операції 26 типів, які позначаються малими літерами латинського алфавіту. Процес збирання складається з \(N\) операцій.

Передбачається використовувати робота один раз для виконання частини послідовних операцій з процесу складання. Пам'ять робота складається з \(K\)-комірок, кожна з яких містить одну операцію. Операції виконуються послідовно, починаючи з першої, у тому порядку, в якому вони розташовані в пам'яті. Виконавши останню із них, робот продовжує роботу з першою. Роботу можна зупинити після будь-якої операції. Використання робота економічно доцільно, якщо він виконає хоча б \(K+1\) операцію.

Потрібно написати програму, яка за заданим процесом збирання визначить кількість економічно доцільних способів використання робота.

Формат вхідних даних

У першому рядку вхідного файлу записано число \(K > 0\) - кількість операцій, які можна записати в пам'ять робота.

Другий рядок складається з \(N > K\) малих латинських букв, що позначають операції - процес складання двигуна. Операції одного і того ж типу позначаються однієї буквою.

Формат вихідних даних

Вихідний файл повинен містити єдине ціле число - кількість економічно доцільних способів використання робота.

Приклад вхідних даних

2
zabacabab

Приклад вихідних даних

5

Приклад вхідних даних

2
abc

Приклад вихідних даних

0

Коментарі

Ще немає коментарів.