C - 流れ
Editorial
Time Limit: 2 sec / Memory Limit: 64 MB
Description
のグリッドがある.
グリッド上のおのおののマスには,高さが設定されている.
今,いくつかのマスの上から液体を注ぐ.
あるマスの上に液体が存在し,そのマスの高さよりもそこから隣接するマスの高さの方が低いとき,液体は隣接するマスへ広がっていく.ただし,グリッド上の2つのマスは辺を共有するときに隣接していると見なす.
液体が広がるマスの個数を求めよ.
Input
入力は複数のテストケースからなる. 入力の終わりは,3つの0のみを含んだ行で示される. 各テストケースは,以下の形式で与えられる.
… … … … …
テストケースの1行目には,3つの整数が書かれている. はそれぞれグリッドの横幅と縦幅を表し,は液体を注ぐ回数を表す.
続く行には,それぞれw個の整数が書かれている. は(,)のマスの高さを表す.
続く行にはそれぞれ2個の整数,が書かれている. ,は(,)のマスに液体を注ぐことを示す.
ただしすでに液体を注いだマスにもう一度液体を注ぐこともある.
テストケースの数は1つのファイルにつき20個以下であることが保証されている.
Output
各テストケースに対して,液体が広がるマスの個数を1行に出力せよ.
Sample InputCopy
Copy
2 2 1 1 0 0 1 1 0 2 2 1 1 0 0 1 1 1 1 1 0 100 5 5 2 5 4 5 5 5 5 3 5 1 5 5 2 1 2 5 5 3 5 3 5 5 5 5 5 5 0 0 2 2 0 0 0
Sample OutputCopy
Copy
1 3 0 5