結果
問題 |
No.2639 Longest Increasing Walk
|
ユーザー |
![]() |
提出日時 | 2024-02-19 18:24:05 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 1,117 ms / 2,000 ms |
コード長 | 526 bytes |
コンパイル時間 | 251 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 166,144 KB |
最終ジャッジ日時 | 2024-09-29 01:13:14 |
合計ジャッジ時間 | 9,093 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
ソースコード
import sys sys.setrecursionlimit(998244) h,w = map(int,input().split()) a = [list(map(int,input().split())) for i in range(h)] dp = [[0]*w for i in range(h)] seen = [[0]*w for i in range(h)] def dfs(i, j): if seen[i][j]: return dp[i][j] ret = 1 for x, y in [(i+1, j), (i-1, j), (i, j+1), (i, j-1)]: if 0 <= x < h and 0 <= y < w and a[x][y] > a[i][j]: ret = max(ret, dfs(x, y) + 1) dp[i][j] = ret seen[i][j] = 1 return ret ans = 0 for i in range(h): for j in range(w): ans = max(ans, dfs(i, j)) print(ans)