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;}