hdu 3732
来源:互联网 发布:iphone移动数据慢 编辑:程序博客网 时间:2024/06/06 07:04
#include<cstdio>#include<cstring>#include<iostream>using namespace std;int V;int v[150],c[150];int hash[15][15],dp[100500];void BB(int v,int c){ int i; for(i=V;i>=v;i--) dp[i]=max(dp[i],dp[i-v]+c);}void solve(int a,int b,int x){ int t=1; while(x>=t) { BB(a*t,b*t); x-=t; t<<=1; } if(x) BB(a*x,b*x);}int main(){ int n,i,a,b; char str[100]; while(scanf("%d%d",&n,&V)!=EOF) { memset(hash,0,sizeof(hash)); memset(dp,0,sizeof(dp)); int cnt=0; for(i=0;i<n;i++) { scanf("%s%d%d",str,&b,&a); if(!hash[a][b]) { v[cnt]=a; c[cnt++]=b; } hash[a][b]++; } for(i=0;i<cnt;i++) solve(v[i],c[i],hash[v[i]][c[i]]); printf("%d\n",dp[V]); } return 0;}