結果
問題 |
No.1174 盆栽の剪定
|
ユーザー |
![]() |
提出日時 | 2025-05-11 04:19:12 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 375 ms / 2,000 ms |
コード長 | 513 bytes |
コンパイル時間 | 414 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 160,976 KB |
最終ジャッジ日時 | 2025-05-11 04:19:20 |
合計ジャッジ時間 | 7,959 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
N = int(input()) A = [-1] + list(map(int, input().split())) M = 18 inf = 1 << 60 dp = [[-inf] * (2 * M + 5) for i in range(2 * N + 5)] for i in range(N, 0, -1): for j in range(-M, M): dp[i][j] = A[i] * j l = 2 * i r = 2 * i + 1 for j in range(-M, M): res = 0 res = max(res, dp[l][j + 1]) res = max(res, dp[r][j + 1]) res = max(res, dp[l][j - 1] + dp[r][j + 1]) res = max(res, dp[l][j + 1] + dp[r][j - 1]) dp[i][j] += res print(dp[1][0])