救民于水火 (超前版)

x-hechengye 2022-08-10 15:12:03 14 返回题目

#include <bits/stdc++.h>
using namespace std;
struct node{
    int c,w,p;	
};
node a[40];
int v,n,f[210];
int main(){
	cin>>v>>n;
	for(int i=1;i<=n;i++) {
		cin>>a[i].c>>a[i].w>>a[i].p;
	}
	for(int i=1;i<=n;i++)
	    for(int j=v;j>=a[i].c;j--)
	        for(int k=1;k<=(a[i].p==0 ? j/a[i].c : a[i].p);k++)
	            if(j>=k*a[i].c) f[j]=max(f[j],f[j-k*a[i].c]+k*a[i].w);
	cout<<f[v];
	return 0;
}
{{ vote && vote.total.up }}