結果
| 問題 |
No.2855 Move on Grid
|
| コンテスト | |
| ユーザー |
timi
|
| 提出日時 | 2024-09-04 15:48:10 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,003 ms / 3,000 ms |
| コード長 | 853 bytes |
| コンパイル時間 | 493 ms |
| コンパイル使用メモリ | 82,388 KB |
| 実行使用メモリ | 139,360 KB |
| 最終ジャッジ日時 | 2024-09-04 15:48:38 |
| 合計ジャッジ時間 | 27,641 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 40 |
ソースコード
N,M,K=map(int,input().split())\
# A=sorted(A,key=lambda x: x[1])
# A=sorted(A,key=lambda x: x[0])
C=[]
for i in range(N):
A=list(map(int, input().split()))
C.append(A)
ok,ng=1,10**9+1
from collections import deque
d=deque()
while (ng-ok)>1:
mid=(ok+ng)//2
dp=[[10**10]*M for _ in range(N)]
if C[0][0]>=mid:
dp[0][0]=0
else:
dp[0][0]=1
d.append((0,0,dp[0][0]))
dx,dy=[0,0,1,-1],[1,-1,0,0]
while d:
x,y,s=d.popleft()
if dp[x][y]!=s:
continue
for i in range(4):
nx,ny=x+dx[i],y+dy[i]
if 0<=nx<N and 0<=ny<M:
ns=s
if C[nx][ny]<mid:
ns+=1
if dp[nx][ny]>ns:
dp[nx][ny]=ns
if s==ns:
d.appendleft((nx,ny,ns))
else:
d.append((nx,ny,ns))
if dp[-1][-1]<=K:
ok=mid
else:
ng=mid
print(ok)
timi