比赛 专项训练十题 评测结果 AAAAAAAAAA
题目名称 灵魂分流药剂 最终得分 100
用户昵称 swttc 运行时间 0.021 s
代码语言 C++ 内存使用 0.36 MiB
提交时间 2017-06-02 19:17:26
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<vector>

using namespace std;

int n,m,a,b,hp[110],mp[110],p[110],f[110][110];
vector<int>box[20];

int main()
{
	freopen("soultap.in","r",stdin);
	freopen("soultap.out","w",stdout);
	scanf("%d%d%d%d",&n,&m,&a,&b);
	for(int i=1;i<=n;i++)
	{
		int t;
		scanf("%d%d%d%d",&hp[i],&mp[i],&t,&p[i]);
		box[t].push_back(i);
	}
	//for(int i=1;i<=n;i++)
	for(int i=1;i<=m;i++)
	 for(int j=a;j>=0;j--)
	  for(int k=b;k>=0;k--)
	   for(int l=0;l<box[i].size();l++)
	   {
	   		int pos=box[i][l];
	   		if(mp[pos]<=k&&hp[pos]<=j)
	   		{
	   			f[j][k]=max(f[j][k],f[j-hp[pos]][k-mp[pos]]+p[pos]); 
			}
	   }
	printf("%d",f[a][b]);
	return 0;
}