結果
問題 |
No.783 門松計画
|
ユーザー |
![]() |
提出日時 | 2021-03-16 10:14:30 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 233 ms / 2,000 ms |
コード長 | 774 bytes |
コンパイル時間 | 199 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 77,824 KB |
最終ジャッジ日時 | 2024-11-07 20:55:56 |
合計ジャッジ時間 | 2,996 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
n,C = map(int,input().split()) *v, = map(int,input().split()) *w, = map(int,input().split()) # dp[cost][2つ前][1つ前] = max(length) N = 51 dp = [[[0]*N for _ in range(N)] for _ in range(C+1)] for i in range(n): for j in range(n): if v[i] != v[j] and w[i]+w[j] <= C: dp[w[i]+w[j]][v[i]][v[j]] = v[i]+v[j] ans = 0 for i in range(C): for j in range(N): for k in range(N): if dp[i][j][k] == 0: continue for l in range(n): if j == v[l]: continue if i+w[l] > C: continue if j > k < v[l] or j < k > v[l]: x = dp[i][j][k] + v[l] ans = max(ans,x) dp[i+w[l]][k][v[l]] = max(dp[i+w[l]][k][v[l]], x) print(ans)