比赛 |
专项训练十题 |
评测结果 |
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;
}