Sea Battle

あなたは「Sea Battle」ゲームの開発チームの一員です。現在、このゲームで最も重要な統計情報の1つを更新する任務を担当しています。与えられた盤面から、
healthy
、dead
、そして wounded
の船がそれぞれ何隻あるかを特定しなければなりません。次のことが分かっています:- どの船も互いに面が接することはありません。よって、グリッド上で隣り合うセルがともに船である場合、それらは同じ船とみなされます。
- このゲームでは、船は必ずしも一直線とは限りません。これは、プレミアムユーザー向けの上級モードの機能です。
- 爆弾が一度も当たっていない船は
healthy
です。
- 船の全セルが爆弾で攻撃されている場合、その船は
dead
です。
- 一部のセルだけが爆弾を受けている船は
wounded
とみなされます。
与えられたグリッドの状況から、
healthy
、dead
、wounded
の船の数を出力するプログラムを作成してください。 入力
最初の行には
r
と c
(1 ≤ r, c ≤ 50) の2文字が書かれており、それぞれグリッドの行数と列数を表します。続く
r
行には、それぞれ c
個の文字が含まれ、盤面を表現しています:.
は水面 (船なし)
s
は無傷の船のセル
b
は爆弾で攻撃された船のセル
出力
プログラムは3つの数値を出力します。それぞれ
healthy
、dead
、wounded
の船の数を表します。 例
Input
7 8
..s.bb.s
s.......
s.sssss.
b.s...s.
..sssbs.
s.......
ss......
Output
3 1 2
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB