祼的完全背包问题
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define LL __int64
using namespace std;
LL dp[100005];
struct Food{
int a,b;
}fd[105];
int main(){
int n,m;
while(scanf("%d",&n)!=EOF){
for(int i=1;i<=n;i++)
scanf("%d%d",&fd[i].a,&fd[i].b);
scanf("%d",&m);
memset(dp,0,sizeof(dp));
LL ans=0;
for(int k=1;k<=n;k++){
for(int i=0;i<=m-fd[k].b;i++){
dp[i+fd[k].b]=max(dp[i+fd[k].b],dp[i]+fd[k].a);
ans=max(dp[i+fd[k].b],ans);
}
}
printf("%I64d\n",ans);
}
return 0;
}