P14553 [ROI 2013 Day1] 装配机器人
题目描述
某高校的学生设计了一款机器人,用于部分自动化航空发动机的装配过程。
在发动机装配过程中可能遇到 26 种类型的操作,用小写拉丁字母表示。装配过程由 $N$ 个操作组成。计划使用机器人一次来执行装配过程中部分连续的操作。
机器人的内存由 $K$ 个单元组成,每个单元存储一个操作。操作按顺序执行,从第一个操作开始,按照它们在内存中的排列顺序进行。执行完最后一个操作后,机器人会从第一个操作继续工作。机器人可以在执行任意数量的操作后停止。如果机器人执行了至少 $(K + 1)$ 个操作,则机器人的使用在经济上是合理的。
需要编写一个程序,根据给定的装配过程确定机器人在经济上合理的使用方式数量。
输入格式
输入文件的第一行写有数字 $K$($1 \leqslant K < N$)——可以写入机器人内存的操作数量。
第二行由 $N$($2 \leqslant N \leqslant 200,000$)个小写拉丁字母组成,表示操作——即发动机的装配过程。相同类型的操作用相同的字母表示。
输出格式
输出文件应包含一个整数——机器人在经济上合理的使用方式数量。
说明/提示
### 说明
在第一个样例中,以下操作序列使用机器人在经济上是合理的:
- 第 2 到第 4 个操作:`aba`,此时机器人内存中的操作为 `ab`;
- 第 4 到第 6 个操作:`aca`,机器人内存中的操作为 `ac`;
- 第 6 到第 8 个操作:`aba`,机器人内存中的操作为 `ab`;
- 第 6 到第 9 个操作:`abab`,机器人内存中的操作为 `ab`;
- 第 7 到第 9 个操作:`bab`,机器人内存中的操作为 `ba`。
### 评分
本题包含三个子任务。每个子任务的评分使用独立的测试组。仅当通过相应组的所有测试时,子任务的得分才会被计入。
#### 子任务 1
$N \leqslant 100$。
该子任务分值为 30 分。
#### 子任务 2
$N \leqslant 5000$。
该子任务分值为 30 分。
#### 子任务 3
$N \leqslant 200,000$。
该子任务分值为 40 分。