結果
問題 |
No.3014 岩井満足性問題
|
ユーザー |
![]() |
提出日時 | 2025-01-25 16:43:11 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,287 bytes |
コンパイル時間 | 529 ms |
コンパイル使用メモリ | 82,652 KB |
実行使用メモリ | 363,392 KB |
最終ジャッジ日時 | 2025-01-25 23:54:51 |
合計ジャッジ時間 | 20,901 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 MLE * 1 |
other | AC * 7 WA * 6 TLE * 3 MLE * 2 |
ソースコード
from collections import * from itertools import * from functools import cache, partial from pprint import pprint import sys from typing import Any, Final try: from icecream import ic except ImportError: # Graceful fallback if IceCream isn't installed. ic = lambda *a: None if not a else (a[0] if len(a) == 1 else a) # noqa debug = partial(print, file=sys.stderr) dpprint = partial(pprint, stream=sys.stderr) sys.setrecursionlimit(10**6) MOD = 998244353 N, D, K = map(int, input().split()) A = list(map(int, input().split())) C = list(map(int, input().split())) INF = float("inf") # dp([i])[j][k] := i 番目まで考えたときに j 個の問題を採用し美しさが k の時の最大の満足度 ic(N, D, K) ic(A, C) dp = [[-INF] * (K + 1) for _ in range(D + 1)] dp[0][0] = 0 for i in range(N): dp2 = [[-INF] * (K + 1) for _ in range(D + 1)] a = A[i] c = C[i] for j in range(D): # 問題 i を採用しない for k in range(K + 1): dp2[j][k] = max(dp2[j][k], dp[j][k]) # 問題 i を採用する for k in range(K + 1): dp2[j + 1][min(K, k + c)] = max(dp2[j + 1][min(K, k + c)], dp[j][k] + a) dp = dp2 # ic(dp) d = dp[D] ans = d[K] if ans == -INF: print("No") else: print(ans)