Sea Battle

screen-22.webp

あなたは「Sea Battle」ゲームの開発チームの一員です。現在、このゲームで最も重要な統計情報の1つを更新する任務を担当しています。与えられた盤面から、healthydead、そして wounded の船がそれぞれ何隻あるかを特定しなければなりません。次のことが分かっています:

  • どの船も互いに面が接することはありません。よって、グリッド上で隣り合うセルがともに船である場合、それらは同じ船とみなされます。

  • このゲームでは、船は必ずしも一直線とは限りません。これは、プレミアムユーザー向けの上級モードの機能です。

  • 爆弾が一度も当たっていない船は healthy です。

  • 船の全セルが爆弾で攻撃されている場合、その船は dead です。

  • 一部のセルだけが爆弾を受けている船は wounded とみなされます。

与えられたグリッドの状況から、healthydeadwounded の船の数を出力するプログラムを作成してください。

入力

最初の行には rc (1 ≤ r, c ≤ 50) の2文字が書かれており、それぞれグリッドの行数と列数を表します。

続く r 行には、それぞれ c 個の文字が含まれ、盤面を表現しています:

  • . は水面 (船なし)

  • s は無傷の船のセル

  • b は爆弾で攻撃された船のセル

出力

プログラムは3つの数値を出力します。それぞれ healthydeadwounded の船の数を表します。

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

To check your solution you need to sign in
Sign in to continue