結果
問題 |
No.2855 Move on Grid
|
ユーザー |
![]() |
提出日時 | 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)