結果

問題 No.3014 岩井満足性問題
ユーザー D M
提出日時 2025-02-04 10:37:30
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 502 ms / 3,000 ms
コード長 1,489 bytes
コンパイル時間 728 ms
コンパイル使用メモリ 82,348 KB
実行使用メモリ 78,080 KB
最終ジャッジ日時 2025-02-04 10:37:39
合計ジャッジ時間 5,718 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 18
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

def main():
import sys
# sys.stdin.buffer.read()
data = sys.stdin.buffer.read().split()
if not data:
return
it = iter(data)
try:
N = int(next(it))
D = int(next(it))
K = int(next(it))
except StopIteration:
return
A = [0] * N
for i in range(N):
A[i] = int(next(it))
C = [0] * N
for i in range(N):
C[i] = int(next(it))
INF = -10 ** 18 #
# dp[d][b] = d b (b>=K b=K )
dp = [[INF] * (K + 1) for _ in range(D + 1)]
dp[0][0] = 0
# 0/1
for i in range(N):
a = A[i]
c = C[i]
# d D-1 0
for d in range(D - 1, -1, -1):
cur = dp[d]
nxt = dp[d + 1]
for b in range(K + 1):
val = cur[b]
if val == INF:
continue
nb = b + c
if nb >= K:
nb = K
cand = val + a
if cand > nxt[nb]:
nxt[nb] = cand
ans = dp[D][K]
if ans == INF:
sys.stdout.write("No")
else:
sys.stdout.write(str(ans))
if __name__ == '__main__':
main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0