#joi2020hob. [joi2020ho_b]JJOOII 2 (JJOOII 2)
[joi2020ho_b]JJOOII 2 (JJOOII 2)
ビ太郎は友人のビバ子から誕生日プレゼントに J
,O
,I
の 種類の文字からなる長さ の文字列 をもらった.
を 以上の整数とする. 個の文字 J
, 個の文字 O
, 個の文字 I
をこの順に並べた文字列をレベル の JOI 文字列と呼ぶことにする.例えば,JJOOII
はレベル の JOI 文字列である.
ビ太郎はレベル の JOI 文字列が好きなので,以下の 種類の操作を任意の回数,任意の順番で行うことで,文字列 をレベル の JOI 文字列に変換することにした.
- 操作 文字列 の先頭の文字を消す.
- 操作 文字列 の末尾の文字を消す.
- 操作 文字列 の先頭でも末尾でもない文字を消す.
操作 を行うのは面倒なので,操作 を行う回数をできるだけ少なくして,文字列 をレベル の JOI 文字列に変換したい.
長さ の文字列 と 以上の整数 が与えられたとき,文字列 をレベル の JOI 文字列に変換するのに必要な操作 の回数の最小値を出力するプログラムを作成せよ.ただし,どのように操作を行っても文字列 をレベル の JOI 文字列に変換できない場合は,代わりに を出力せよ.
入力
入力は以下の形式で標準入力から与えられる. は整数である. は文字列である.
出力
文字列 をレベル の JOI 文字列に変換するのに必要な操作 の回数の最小値を 行で出力せよ.ただし,どのように操作を行っても文字列 をレベル の JOI 文字列に変換できない場合は,代わりに を出力せよ.
制約
- .
- .
- は
J
,O
,I
の 種類の文字からなる長さ の文字列である.
小課題
- ( 点) .
- ( 点) .
- ( 点) 追加の制約はない.
入力例 1
10 2
OJIJOIOIIJ
出力例 1
2
次のように操作を行うことで,文字列 をレベル のJOI文字列に変換できる.
- まず操作 を行う.文字列 は
JIJOIOIIJ
になる. - 次に操作 を行う.文字列 は
JIJOIOII
になる. - 次に操作 を行い,先頭から 文字目を消す.文字列 は
JJOIOII
になる. - 最後に操作 を行い,先頭から 文字目を消す.文字列 は
JJOOII
になる.
回未満の操作 で変換することは不可能なので, を出力する.
入力例 2
9 3
JJJOOOIII
出力例 2
0
操作を行わなくてもよい.
入力例 3
9 1
IIIOOOJJJ
出力例 3
-1
この入力例では,どのように操作を行っても文字列 をレベル の JOI 文字列に変換できない.