結果
問題 | No.157 2つの空洞 |
ユーザー | 6soukiti29 |
提出日時 | 2017-09-21 09:09:05 |
言語 | Nim (2.0.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,493 bytes |
コンパイル時間 | 784 ms |
コンパイル使用メモリ | 64,812 KB |
最終ジャッジ日時 | 2024-11-14 20:15:05 |
合計ジャッジ時間 | 1,194 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 26) Error: cannot open file: queues
ソースコード
import sequtils,strutils,queues var W,H : int C = newSeq[string](0) cnt : int D = [[0, 1], [1, 0], [-1, 0], [0, -1]] (W, H) = stdin.readline.split.map(parseInt) for h in 1..H: C.add(stdin.readline) proc tansakuA(px, py : int)= var qu = initQueue[array[2, int]](1024) qu.add([py, px]) while qu.len > 0: var a = qu.pop C[a[0]][a[1]] = chr(cnt + ord('0')) for d in D: var (ny, nx) = (a[0] + d[1], a[1] + d[0]) if ny < 0 or ny >= H: continue if nx < 0 or ny >= W: continue if C[ny][nx] == '.': C[ny][nx] = chr(cnt + ord('0')) qu.add([ny, nx]) for i in 0..<H: for j in 0..<W: if C[i][j] == '.': tansakuA(j, i) cnt += 1 cnt = 1 block tansaku: while true: for i in 0..<H: for j in 0..<W: if C[i][j] == chr(cnt + ord('0')): for d in D: var (ny, nx) = (i + d[1], j + d[0]) if ny < 0 or ny >= H: continue if nx < 0 or nx >= W: continue if C[ny][nx] == '#': C[ny][nx] = char(cnt + 1 + ord('0')) elif C[ny][nx] == '0': echo cnt - 1 break tansaku cnt += 1