結果

問題 No.1947 質より種類数
ユーザー roaris
提出日時 2022-05-20 21:58:18
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 710 ms / 2,000 ms
コード長 517 bytes
コンパイル時間 478 ms
コンパイル使用メモリ 82,048 KB
実行使用メモリ 76,928 KB
最終ジャッジ日時 2024-09-20 08:04:14
合計ジャッジ時間 7,976 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 37
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = sys.stdin.readline
from collections import *

N, V, C = map(int, input().split())
vw = [tuple(map(int, input().split())) for _ in range(N)]
dp1 = [0]*(V+1)

for i in range(N):
    v, w = vw[i]
    
    for j in range(V, -1, -1):
        if j-v>=0:
            dp1[j] = max(dp1[j], dp1[j-v]+w+C)

dp2 = [0]*(V+1)

for i in range(V+1):
    for v, w in vw:
        if i+v<=V:
            dp2[i+v] = max(dp2[i+v], dp2[i]+w)

ans = 0

for i in range(V+1):
    ans = max(ans, dp1[i]+dp2[V-i])

print(ans)
0