結果

問題 No.402 最も海から遠い場所
コンテスト
ユーザー nebukuro09
提出日時 2016-09-23 10:54:46
言語 PyPy2
(7.3.20)
コンパイル:
pypy2 -m py_compile _filename_
実行:
/usr/bin/pypy2 Main.pyc
結果
MLE  
実行時間 -
コード長 801 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 376 ms
コンパイル使用メモリ 81,152 KB
実行使用メモリ 551,300 KB
最終ジャッジ日時 2026-05-12 12:02:11
合計ジャッジ時間 7,342 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 14 MLE * 1 -- * 4
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

H, W = map(int, raw_input().split())
board = ['.'*(W+2)]
for i in xrange(H):
    board.append('.'+raw_input()+'.')
board.append('.'*(W+2))

frontier = set()
visited = set()
for i in xrange(H+2):
    for j in xrange(W+2):
        if board[i][j] == '.':
            frontier.add((i, j))


dr = [-1, -1, -1, 0, 0, 1, 1, 1]
dc = [-1, 0, 1, -1, 1, -1, 0, 1]
ans = 0
while len(visited) < (H+2)*(W+2):
    ans += 1
    new_frontier = set()
    for r, c in frontier:
        for i in xrange(8):
            nr, nc = r+dr[i], c+dc[i]
            if nr < 0 or nr >= H+2 or nc < 0 or nc >=W+2:
                continue
            if (nr, nc) in visited or (nr, nc) in frontier:
                continue
            new_frontier.add((nr, nc))
    visited |= frontier
    frontier = set(new_frontier)
print ans-1
0