問題
最悪のシナリオは、単一のライン上の3つの数字で記載されn
、m
およびp
。その行に続くのは、行ごとの値n
をm
持つ行です。各値は、各セルが保持できる水の合計単位を表します。
次のp
行は、翌日の天気を説明していp
ます。1ユニットの雨が毎日1つのセルに降ります。セル内の水の量が保持できる量を超えると、そのセルはあふれます。複数の隣接するセルがフルキャパシティの場合、それらは共通の隣接セルを共有する1つのセルとして扱われます(空白のグループをクリックするとマインスイーパを考えてください)。
- 単一の中央セルには4つの隣接セルがあります
- 2つの隣接するフルキャパシティの中間セルは、6つの隣接セルを持つ1つのセルとして扱われます
- 単一のコーナーセルには2つの隣接セルがあります
- 1つの壁のセルには3つの隣接セルがあります
セルがフラッディングすると、フラッドイベントが発生します。過剰な水はすべて、近隣に均等に分配されます。それが原因で1つ以上のネイバーがフラッディングする場合、別のフラッドイベントが発生します。これは、水が落ち着くか、都市が完全に浸水するまで続きます。
入力例
7 5 3
3 2 3 4 5
2 2 0 3 4
1 1 2 3 3
4 1 2 2 2
4 1 1 2 2
4 4 1 2 2
4 4 2 2 2
0 0
1 2
4 3
0 0
行1、列1で雨が降ったことを意味します1 2
は、列2で雨が降ったことを意味します。
p
数日間の雨の後、都市が完全に浸水している場合は、シンクを出力します。それ以外の場合は、Swimを出力します。
出力例
泳ぐ
仮定
- 入力は、stdinを介して提供されるか、「city.txt」から読み取られるか、引数として受け入れられます。既に投稿された回答を無効にしないために、3つすべてが許可されています。
- 水の容量は非負の整数になります。
学部生の40以上のチーム(A&M、UT、LSU、Rice、Baylorなど)がさまざまな言語でプログラミングコンテストに参加し、5時間でこの問題を解決できませんでした。そのため、このパズルには解決策を簡単にするキャッチがあることに言及するしかありません。最短のコードでもパズルが解決されると私は確信しているため、最短のコードが勝ちます。
0.25
、隣接する各セルにユニットとして分配されますか(単一の中間フラッディングセルを想定)
n
のラインm
値または他の方法の周り?あなたの例は、書かれた仕様と一致しません。