链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
2023年我们cpa协会又增加了新的成员,为了让学弟学妹们知道我们协会的财力,于是会长申请了一笔资金M,带大家去一个或者多个景点玩^_^,为了让大家玩得开心,贴心的会长亲自去了N个景点实地考察,记录了每一个景点大家去玩一共需要的花费V以及对于该景点的满意度S(满分为10),请计算出这一笔资金M能让大家获得的最大满意度之和MaxTotalS。
#include<iostream>
using namespace std;
#define int long long
const int N=1e6+10;
int f[N];
string s[N];
signed main(void)
{
int n,m;
cin>>m>>n;
for(int i=1;i<=n;i++)
{
string a;int v,w;
cin>>a>>v>>w;
for(int j=m;j>=v;j--)
{
f[j]=max(f[j],f[j-v]+w);
if(f[j]<=f[j-v]+w)
s[j]=s[j-v]+a+" ";
}
}
if(f[m])
cout<<s[m]<<endl<<f[m];
else
cout<<"insufficient funds.";
}