結果
問題 | No.157 2つの空洞 |
ユーザー |
|
提出日時 | 2015-06-09 13:48:03 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 15 ms / 2,000 ms |
コード長 | 752 bytes |
コンパイル時間 | 131 ms |
コンパイル使用メモリ | 7,040 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-06 15:12:48 |
合計ジャッジ時間 | 1,174 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 16 |
ソースコード
# -*- coding:utf-8 -*- from heapq import heappop, heappush if __name__ == "__main__": w,h = map(int,raw_input().split()) c = [raw_input()for i in range(h)] arrived = [[False for i in xrange(w)]for j in xrange(h)] direc = [(1,0),(-1,0),(0,1),(0,-1)] for i in xrange(h): for j in range(w): if c[i][j] == ".": hp = [] heappush(hp,(0,i,j)) arrived[i][j] = True while len (hp) != 0: (d,a,b) = heappop(hp) if d > 0 and c[a][b] == ".": print d exit() for da,db in direc: na = a + da nb = b + db nd = d if na >= 0 and nb >= 0 and na < h and nb < w and arrived[na][nb] == False: if c[na][nb] == "#": nd += 1 arrived[na][nb] = True heappush(hp,(nd,na,nb))