結果
問題 | No.2639 Longest Increasing Walk |
ユーザー | hirayuu_yc |
提出日時 | 2024-02-19 21:27:18 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 565 ms / 2,000 ms |
コード長 | 644 bytes |
コンパイル時間 | 207 ms |
コンパイル使用メモリ | 82,456 KB |
実行使用メモリ | 118,488 KB |
最終ジャッジ日時 | 2024-09-29 01:23:14 |
合計ジャッジ時間 | 7,370 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
ソースコード
import sys #sys.setrecursionlimit((1<<19)-1) #import pypyjit #pypyjit.set_param('max_unroll_recursion=-1') input=sys.stdin.buffer.readline H,W=map(int,input().split()) A=[list(map(int,input().split())) for i in range(H)] p=[] for i in range(H): for j in range(W): p.append((A[i][j],i,j)) p.sort() dp=[[1]*(W) for i in range(H)] for a,i,j in p: for dx,dy in [(0,1),(1,0),(0,-1),(-1,0)]: try: assert i+dx>=0 assert j+dy>=0 if a>A[i+dx][j+dy]: dp[i][j]=max(dp[i][j],dp[i+dx][j+dy]+1) except: pass ans=0 for i in dp: ans=max(ans,max(i)) print(ans)