J - Delete Balls
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 400 点
問題文
R
と B
と W
からなる長さ N の文字列 S が与えられます。
N 個のボールが左右一列に並んでいて、左から i 番目のボールの色は S の i 文字目が R
なら赤、B
なら青、W
なら白です。
あなたははじめにすべての白色のボールをそれぞれ赤色か青色で塗りなおします。その後、あなたは以下の操作を可能な限り何度でも行うことができます。
- 赤色のボール r 個と青色のボール b 個からなる長さ r + b の連続したボールの列を選択し,列全体から取り除く。その後、残ったボールの順番を保ったまま取り除いた分だけ列を詰める。
上手く色を塗りなおし、適切な操作を行うと、最大何回操作ができるか求めてください。
制約
- 1 \leq N \leq 2 \times 10 ^ 5
- 1 \leq r, b
- r + b \leq N
- N, r, b は整数
- S は
R
,B
,W
からなる長さ N の文字列
入力
入力は以下の形式で標準入力から与えられる。
N r b S
出力
操作の最大回数を出力せよ。
入力例1
4 1 1 BBWR
出力例1
2
まず左から 3 番目の白いボールを赤く塗ります。 1 回目の操作では左から 2 番目の青いボールと 3 番目の赤いボールからなる連続部分列を選択し,列から取り除きます。 2 回目の操作では左から 1 番目の青いボールと 2 番目の赤いボールからなる連続部分列を選択し,列から取り除きます。
以上により 2 回の操作を行うことができました。
どのような手順でも 3 回以上操作を行うことはできないので、答えは 2 となります。
入力例2
6 2 1 RBBBWB
出力例2
0
取り除く部分列は連続である必要があります。
入力例3
13 3 3 WWWWWWWWWWWWW
出力例3
2
すべてのボールを同じ色で塗る必要は無いことに注意してください。