問題 - S.goatの言葉
Red Blue White3色のmatterを構成するoriginがある。 originは各10個ずつから構成される。
originはあるルールに従いそのmatterを保っている。
-
1:Red - Kr個左右にRed originがあってはならない。
2:Blue - Kb個左右にBlue originがあってはならない。
3:White - 特にルールはない。
しかし構築した際、上記のルールを満たさないmatter - "butter"ができる可能性がある。
よって、構築後にoriginをいくつか引き抜いてmatterを再構築するという操作が要る。
Red, Blueのoriginはいくらでも引き抜いて良いが、Whiteのoriginを引き抜くことはできない。
操作をすることで条件を満たし、matterをできるだけ大きく保ちたい。そのときの最大値を求めてくれ。
具体的な操作については入出力例を用いて説明するとしよう。 - S.goat 記
入力
Kr Kb S
- 1行目にKr Kbが空白区切りで与えられる。
- 2行目に30文字のoriginの列が与えられる。RはRed, BはBlue, WはWhiteである。
出力
- 再構築したmatterの大きさの最大値を出力する。改行を忘れないこと。
制約
- 1≦Kr, Kb≦29
- SはR, B, Wが各10個ずつの30文字の文字列である。
入出力例
入力例1
1 10 RRRRRRRRRRWWWWWWWWWWBBBBBBBBBB
出力例1
21
- Rの1個となりがRであってはならないのでRを9個抜く。
- Bの10個となりにBがあることは無いのでBは抜かなくてよい。
- 最終的には RWWWWWWWWWWBBBBBBBBBB が残る。
入力例2
1 2 WRWWBBRRRWWBBRRRRWWWBBBRRWWBBB
出力例2
22
入力例3
7 11 BWBWRWRRWBRRWRRWWBBBRRWBBRWBBW
出力例3
27