#P6434. 「JOISC 2023 Day3」合唱
「JOISC 2023 Day3」合唱
题目描述
题目译自 JOISC 2023 Day3 T1 「ビーバーの合唱 / Chorus」
舞台上, 只河狸站成一排,他们是合唱团的成员。每只河狸在合唱团里要么唱女低音声部,要么唱男低音声部。这个信息用一个字符串 给出。确切地说,对于从舞台右边起(即,从观众席看的左边起)第 只河狸,如果字符串 中第 个字符为 A
,则这只河狸唱女低音声部;如果字符串 中第 个字符为 B
,则这只河狸唱男低音声部。有 只河狸唱女低音声部, 只河狸唱男低音声部。
从现在开始,河狸们要唱 首歌。然而,因为每首歌都非常难,每只河狸只恰好唱一首歌,并且不唱其他的歌。此外,为了让歌声更好听,对于每首歌,应满足以下条件:
- 至少一只河狸唱这首歌
- 唱女低音声部的河狸数等于唱男低音声部的河狸数
- 如果我们只考虑唱这首歌的河狸,每只唱女低音声部的河狸在舞台上都站在每只唱男低音声部的河狸的右边
指挥 Bitaro 想要找到一种给河狸分配歌曲的方式,使得满足上述条件。因为 Bitaro 很聪明,他注意到可能无法给这些河狸分配歌曲。
为了解决这个问题,Bitaro 会进行数次如下操作,以满足存在一种给河狸分配歌曲的方式,且满足上述条件:
- 交换两个相邻的河狸的位置
因为 Bitaro 认为效率最重要,他想最小化操作次数。然而,这是一个十分困难的问题。因为你是一个十分聪明的程序员,所以 Bitaro 请你帮他解决这个问题。
给定合唱团的信息和歌曲数 ,写一个程序计算 Bitaro 最少需要进行多少次操作。注意,在本题的限制下,可以通过数次操作使得存在一种给河狸分配歌曲的方式且满足上述条件。
输入格式
第一行两个整数 。
第二行一个长为 的字符串 。
输出格式
输出一行一个整数,表示 Bitaro 最少需要进行的操作次数。
5 2
AABABABBAB
2
5 3
AABABABBAB
0
3 1
BBBAAA
9
10 3
ABABBBBABBABABABAAAA
37
数据范围与提示
对于所有输入数据,满足:
- 中包含 个字符
A
和 个字符B
详细子任务附加限制及分值如下表所示。
子任务编号 | 附加限制 | 分值 |
---|---|---|
无附加限制 |