比赛 专项训练十题 评测结果 AAAAAAAAAA
题目名称 灵魂分流药剂 最终得分 100
用户昵称 liuyu 运行时间 0.027 s
代码语言 C++ 内存使用 0.36 MiB
提交时间 2017-06-02 19:24:59
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b;
int w[102],v[102],t,p[102],f[103][103],Max=0;
vector<int>M[12];

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