秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1148992023-10-24 11:12:11U_SGpython16/16AC987

# import sys
# sys.setrecursionlimit(10**7)
# input = sys.stdin.readline
# import pypyjit
# pypyjit.set_param('max_unroll_recursion=-1')
def mp():return map(int,input().split())
def lmp():return list(map(int,input().split()))
def lm1(LIST): return list(map(lambda x:x-1, LIST))
def mps(A):return [tuple(map(int, input().split())) for _ in range(A)]
def stoi(LIST):return list(map(int,LIST))
def itos(LIST):return list(map(str,LIST))
def atoi(LIST): return [ord(i)-ord("a") for i in LIST]
def Atoi(LIST): return [ord(i)-ord("A") for i in LIST]
def bitA(X,A):return X & 1<<A == 1<<A
import math
import bisect
import heapq
import time
from copy import copy as cc
from copy import deepcopy as dc
from itertools import accumulate, product
from collections import Counter, defaultdict, deque
def ceil(U,V):return (U+V-1)//V
def modf1(N,MOD):return (N-1)%MOD+1
inf = (1<<63)-1
mod = 998244353

n,m = mp()
x = lmp()
y = lmp()
dp = [-inf]*m
dp[0] = 0
for i in range(n):
    now = dp[:]
    for j in range(m):
        if j+y[i] >= m:continue
        now[j+y[i]] = max(now[j+y[i]], dp[j]+x[i])
    dp = now
    #print(dp)
print(max(dp))

Python

sample1.txt AC 17
case1.txt AC 19
case2.txt AC 987
case3.txt AC 18
case4.txt AC 52
case5.txt AC 98
case6.txt AC 111
case7.txt AC 183
case8.txt AC 91
case9.txt AC 49
case10.txt AC 168
case11.txt AC 44
case12.txt AC 46
case13.txt AC 97
case14.txt AC 120
case15.txt AC 18
987 AC