西早稲田のとある町の工場が何者かの手によって突然爆発しました!
あなたは町の地図をもとにその原因を突き止めることを依頼されました。
町にはただ1つの工場があり、また、いたるところにビルと爆弾が設置されています。
この町は高さ W
'、ビルは'#
'、爆弾は'1
'-'9
'の数字(数は大きさを表す)、何もないところは'.
'で表されています。
町に置いてある爆弾は大きさが決まっており、大きさ
爆炎が別の爆弾に達した場合、その爆弾も「爆発」します。これは連鎖的に起こる場合があります。また、爆炎が工場に達した場合工場も爆発します。
あなたの仕事はこの町の地図が与えられた時に、以下の条件を満たす爆弾の個数を調べることです。
- 条件「最初にその爆弾のみを「爆発」させた時、最終的に工場が爆発する」
この条件を満たす爆弾の個数を調べるプログラムを書いてください!
$1 \leq M, N \leq 100$ - 与えられる地図に含まれる文字は、'
W
'、'#
'、'1
'-'9
'の数字、'.
'のみである。 - 与えられる地図に'
W
'はちょうど1つだけ含まれる。 - 与えられる地図に爆弾が1つも含まれないこと、地図上の全ての爆弾が上の条件をみたさないことがある。
$1 \leq M, N \leq 10$
$95 \leq M, N \leq 100$
1 つの入力ファイルは複数のテストケースからなる。
入力ファイルの最初の一行目にはテストケースの個数
$M$ $N$
$S_1$
$S_2$
$\vdots$
$S_M$
1 行目には町の高さ
2 行目からの
各テストケースに対して、条件を満たす爆弾の個数を出力せよ。
6
3 3
.1.
1W.
..1
1 5
2.W.1
3 5
2.2.2
.#.#.
2.2.W
3 5
2.2.2
#####
2.2.W
10 10
####......
........1.
.8..6..#..
.......#..
..#.......
....4.2...
.5......7.
......W...
.9#.3.....
......####
3 3
...
.W.
...
2
1
5
2
8
0
例えば1つ目のテストケースでは、右下の爆弾が「爆発」した場合、爆炎は工場に届きませんが、それ以外の爆弾が「爆発」した場合、爆炎が工場に届き工場が爆発します。よって条件を満たす爆弾の個数は2です。
例えば2つ目のテストケースでは、右の爆弾が「爆発」した場合、爆炎は工場に届きませんが、左の爆弾が「爆発」した場合、爆炎が工場に届き工場が爆発します。よって条件を満たす爆弾の個数は1です。
また、3つ目や4つ目、5つ目のテストケースのように連鎖的に爆弾が「爆発」し、それによって工場が爆発してしまうことがあります。
最後のテストケースのように与えられる地図に爆弾が1つも含まれないことがあることに注意してください。 (工場の爆発は爆弾が原因ではなかったようです。)