卬高杯
提出id | 提出時刻 | ユーザー名 | 問題 | 言語 | 判定状況 | 判定 | 実行時間 |
---|---|---|---|---|---|---|---|
114899 | 2023-10-24 11:12:11 | U_S | G | python | 16/16 | AC | 987 |
# 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))
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