PS:怎么节省空间
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 13000;
int f[maxn+10];
int main()
{
int w, p;
int n, limit;
while(scanf("%d%d", &n, &limit)!= EOF) {
memset(f, 0, sizeof(f));
for(int i = 1; i <= n; i++) {
scanf("%d%d", &w, &p);
for(int j = limit; j >= w; j--) {
f[j] = max(f[j], f[j-w]+p);
}
}
printf("%d\n", f[limit]);
}
return 0;
}