记录编号 559640 评测结果 AAAAAAAAAA
题目名称 自助者天助 最终得分 100
用户昵称 Gravatar遥时_彼方 是否通过 通过
代码语言 C++ 运行时间 0.257 s
提交时间 2021-03-22 21:43:43 内存使用 2.53 MiB
显示代码纯文本
#include<bits/stdc++.h>
#define ull unsigned long long
#define ll long long
using namespace std;
int nc,vc;
int ki[101][3];
int kn;
int n[30001][2],nn;
int v[30001];
void ad(int x)
{
    for(int i=0;(1<<i)<=ki[x][2];i++)
    {
        n[++nn][0]=ki[x][0]*(1<<i);
        n[nn][1]=ki[x][1]*(1<<i); 
        ki[x][2]-=(1<<i);
    }
    if(ki[x][2])
    {
        n[++nn][0]=ki[x][0]*ki[x][2];
        n[nn][1]=ki[x][1]*ki[x][2]; 
    }
    return;
}
int main()
{
    freopen("delicious.in","r",stdin);
	freopen("delicious.out","w",stdout);
    cin>>nc>>vc;
    int s1,s2;
    int pt=1;
    for(int i=1;i<=nc;i++)
    {
        pt=1;
        scanf("%d%d",&s1,&s2);
//        cout<<s1<<" "<<s2<<endl;
        for(int o=1;o<=kn;o++)
        {
            if(ki[o][0]==s1&&ki[o][1]==s2)
            {
                ki[o][2]++;
                pt=0;
                break;
            } 
        }
        if(pt)
        {
            ki[++kn][0]=s1;
            ki[kn][1]=s2;
            ki[kn][2]++;
//            cout<<endl<<ki[kn][0]<<endl;
        }
    }
//    cout<<endl;
//    for(int i=1;i<=kn;i++) cout<<i<<": "<<ki[i][0]<<" "<<ki[i][1]<<" "<<ki[i][2]<<"\n";
    for(int i=1;i<=kn;i++) ad(i);
//    for(int i=1;i<=nn;i++) cout<<i<<": "<<n[i][0]<<" "<<n[i][1]<<"\n";
    for(int i=1;i<=nn;i++)
    {
        for(int o=vc;o>=n[i][0];o--) v[o]=max(v[o],v[o-n[i][0]]+n[i][1]);
//        cout<<i<<": "<<v[vc]<<endl;
    }
    cout<<v[vc]<<endl;
    return 0;
}