#include <iostream>
#include <cstdio>
#define maxn 10000
using namespace std;
int f[maxn];
int n;
int main()
{
int v, w;
int c;
while(scanf("%d%d", &n, &c) != EOF){
memset(f, 0, sizeof(f));
for(int i = 1; i <= n; i++){
scanf("%d%d", &v, &w);
for(int j = c; j >= 0; j--){
if(j >= v){
f[j] = max(f[j], f[j-v] + w);
}
}
}
printf("%d", f[c]);
}
return 0;
}
01背包(滚动数组)
最新推荐文章于 2024-07-29 21:47:46 发布