結果

問題 No.3014 岩井満足性問題
コンテスト
ユーザー yamasaKit_
提出日時 2025-01-25 16:43:11
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,287 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 217 ms
コンパイル使用メモリ 85,188 KB
実行使用メモリ 328,244 KB
最終ジャッジ日時 2026-06-24 08:58:52
合計ジャッジ時間 17,232 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 6 WA * 6 TLE * 1 MLE * 2 -- * 3
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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)
0