結果
問題 |
No.402 最も海から遠い場所
|
ユーザー |
![]() |
提出日時 | 2023-03-20 01:37:08 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,987 ms / 3,000 ms |
コード長 | 775 bytes |
コンパイル時間 | 271 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 451,968 KB |
最終ジャッジ日時 | 2024-09-18 13:57:01 |
合計ジャッジ時間 | 14,417 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
from collections import deque H,W=map(int,input().split()) MAP=[input() for i in range(H)] ANS=[[1<<30]*(W+2) for i in range(H+2)] Q=deque() for i in range(H+2): ANS[i][0]=0 ANS[i][W+1]=0 Q.append((i,0)) Q.append((i,W+1)) for i in range(W+2): ANS[0][i]=0 ANS[H+1][i]=0 Q.append((0,i)) Q.append((H+1,i)) for i in range(H): for j in range(W): if MAP[i][j]==".": Q.append((i+1,j+1)) ANS[i+1][j+1]=0 while Q: x,y=Q.popleft() for z in range(x-1,x+2): for w in range(y-1,y+2): if 0<=z<H+2 and 0<=w<W+2 and ANS[z][w]>ANS[x][y]+1: ANS[z][w]=ANS[x][y]+1 Q.append((z,w)) MAX=0 for ans in ANS: MAX=max(MAX,max(ans)) #print(*ans) print(MAX)