舞台上,A
,则这只河狸唱女低音声部;如果字符串 B
,则这只河狸唱男低音声部。有
从现在开始,河狸们要唱
- 至少一只河狸唱这首歌
- 唱女低音声部的河狸数等于唱男低音声部的河狸数
- 如果我们只考虑唱这首歌的河狸,每只唱女低音声部的河狸在舞台上都站在每只唱男低音声部的河狸的右边
指挥 Bitaro 想要找到一种给河狸分配歌曲的方式,使得满足上述条件。因为 Bitaro 很聪明,他注意到可能无法给这些河狸分配歌曲。
为了解决这个问题,Bitaro 会进行数次如下操作,以满足存在一种给河狸分配歌曲的方式,且满足上述条件:
- 交换两个相邻的河狸的位置
因为 Bitaro 认为效率最重要,他想最小化操作次数。然而,这是一个十分困难的问题。因为你是一个十分聪明的程序员,所以 Bitaro 请你帮他解决这个问题。
给定合唱团的信息和歌曲数
输入格式
第一行两个整数
第二行一个长为
输出格式
输出一行一个整数,表示 Bitaro 最少需要进行的操作次数。
样例输入 1
5 2 AABABABBAB
样例输出 1
2
在这组样例中,Bitaro 可以进行如下操作。这里,下划线部分表示 Bitaro 交换了这两只河狸的位置。
交换从舞台右侧数第三只和第四只河狸
在这次操作后,从舞台右侧表示河狸的字符串变为交换从舞台右侧数第八只和第九只河狸
在这次操作后,从舞台右侧表示河狸的字符串变为
在这些操作后,Bitaro 可以按如下方式给河狸分配歌曲。
- 从舞台右侧,第
只河狸唱第一首歌 - 从舞台右侧,第
只河狸唱第二首歌
这种分配歌曲的方式满足条件。
如果操作次数小于
这组样例满足所有子任务的限制。
这组样例满足子任务
样例输入 2
5 3 AABABABBAB
样例输出 2
0
不进行操作,Bitaro 可以按如下方式分配歌曲。
- 从舞台右侧,第
只河狸唱第一首歌 - 从舞台右侧,第
只河狸唱第二首歌 - 从舞台右侧,第
只河狸唱第三首歌
这种分配方式满足条件。因此输出
这组样例满足所有子任务的限制。
样例输入 3
3 1 BBBAAA
样例输出 3
9
这组样例满足所有子任务的限制。
样例输入 4
10 3 ABABBBBABBABABABAAAA
样例输出 4
37
这组样例满足所有子任务的限制。
数据范围
对于所有输入数据,满足:
中包含 个字符A
和 个字符B
详细子任务附加限制及分值如下表所示。
子任务编号 | 附加限制 | 分值 |
---|---|---|
无附加限制 |
时间限制:6s
空间限制:1024 MB