N,M = map(int,input().split())
INF= float('inf')
dp = [INF]*(M+1)
apps_memory = list(map(int,input().split()))
apps_value = list(map(int,input().split()))
for i in range(N):
memory,value = apps_memory[i],apps_value[i]
for k in range(M,-1,-1):
if k == 0:
if memory >=M:
memory = M
dp[memory] = min(dp[memory],value)
else:
if dp[k]:
num_memory = k + memory
if num_memory >=M:
dp[M] = min(dp[M],dp[k]+value)
else:
dp[num_memory] = min(dp[num_memory],dp[k]+value)
print(dp[M])
N,M = map(int,input().split())
INF= float('inf')
apps_memory = list(map(int,input().split()))
apps_value = list(map(int,input().split()))
total_sum = sum(apps_value)
dp = [0]*(total_sum+1)
result = INF
for i in range(N):
for j in range(total_sum,apps_value[i]-1,-1):
if j - apps_value[i] >=0:
dp[j] = max(dp[j],dp[j-apps_value[i]]+apps_memory[i])
if dp[j] >= M:
result = min(j,result)
print(result)
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 9079 동전 게임 (0) | 2021.05.04 |
---|---|
[BOJ/백준] 8972 미친 아두이노 (0) | 2021.05.04 |
[BOJ/백준] 6209 제자리 멀리뛰기 (0) | 2021.05.04 |
[BOJ/백준] 7453 합이 0인 네 정수 (0) | 2021.05.03 |
[BOJ/백준] 6987 월드컵 (0) | 2021.05.03 |