#joi2020hob. [joi2020ho_b]JJOOII 2 (JJOOII 2)
[joi2020ho_b]JJOOII 2 (JJOOII 2)
将以下文本翻译成中文,并显示为markdown格式:
ビ太郎は友人のビバ子から誕生日プレゼントに `J`,`O`,`I` の $3$ 種類の文字からなる長さ $N$ の文字列 $S$ をもらった.
$K$ を $1$ 以上の整数とする.$K$ 個の文字 `J`,$K$ 個の文字 `O`,$K$ 個の文字 `I` をこの順に並べた文字列を**レベル $K$ の JOI 文字列**と呼ぶことにする.例えば,`JJOOII` はレベル $2$ の JOI 文字列である.
ビ太郎はレベル $K$ の JOI 文字列が好きなので,以下の $3$ 種類の操作を任意の回数,任意の順番で行うことで,文字列 $S$ をレベル $K$ の JOI 文字列に変換することにした.
* **操作 $1$** 文字列 $S$ の先頭の文字を消す.
* **操作 $2$** 文字列 $S$ の末尾の文字を消す.
* **操作 $3$** 文字列 $S$ の先頭でも末尾でもない文字を消す.
操作 $3$ を行うのは面倒なので,操作 $3$ を行う回数をできるだけ少なくして,文字列 $S$ をレベル $K$ の JOI 文字列に変換したい.
長さ $N$ の文字列 $S$ と $1$ 以上の整数 $K$ が与えられたとき,文字列 $S$ をレベル $K$ の JOI 文字列に変換するのに必要な操作 $3$ の回数の最小値を出力するプログラムを作成せよ.ただし,どのように操作を行っても文字列 $S$ をレベル $K$ の JOI 文字列に変換できない場合は,代わりに $−1$ を出力せよ.
输入
从标准输入中按以下格式给出输入。N和K是整数。S是字符串。
N K S
输出
在一行中输出将字符串S转换为级别K的JOI字符串所需的操作3的最小次数。但是,如果无论如何操作,都无法将字符串S转换为级别K的JOI字符串,则输出-1。
约束条件
- 。
- 。
- S是由J、O、I三种字符组成的长度为N的字符串。
输入样例1
10 2
OJIJOIOIIJ
输出样例1
2
可以通过以下操作将字符串S转换为级别K的JOI字符串:
- 首先执行操作1。字符串S变为
JIJOIOIIJ
。 - 然后执行操作2。字符串S变为
JIJOIOII
。 - 然后执行操作3,删除第二个字符。字符串S变为
JJOIOII
。 - 最后执行操作3,删除第四个字符。字符串S变为
JJOOII
。
由于无法在少于2次操作3的情况下进行转换,因此输出2。
输入样例2
9 3
JJJOOOIII
输出样例2
0
无需进行任何操作。
输入样例3
9 1
IIIOOOJJJ
输出样例3
-1
对于此示例,无论如何操作,都无法将字符串S转换为级别1的JOI字符串。