比赛 |
专项训练十题 |
评测结果 |
AAAAAAAAAA |
题目名称 |
灵魂分流药剂 |
最终得分 |
100 |
用户昵称 |
TARDIS |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.04 MiB |
提交时间 |
2017-05-30 20:27:55 |
显示代码纯文本
#include<bits/stdc++.h>
#define COGS
using namespace std;
const int maxn=110,maxm=11;
int n,m,a,b;
vector<int> K[maxm];
int costa[maxn],costb[maxn],belong[maxn],fff[maxn];
int f[maxn][maxn];
int drug[maxn][4];
int ans=-1,temp,num;
inline void in(){
#ifdef COGS
freopen("soultap.in","r",stdin);
freopen("soultap.out","w",stdout);
#endif
scanf("%d%d%d%d",&n,&m,&a,&b);
for (int i=1;i<=n;i++){
scanf("%d%d%d%d",&drug[i][1],&drug[i][2],&drug[i][3],&drug[i][4]);
K[drug[i][3]].push_back(i);
}
}
inline void dp(){
for (int k=1;k<=m;k++){
for (int v1=b;v1>=0;v1--){
for (int v2=a;v2>=0;v2--){
for (int i=0;i<K[k].size();i++){
num=K[k][i];
if (v1<drug[num][1]||v2<drug[num][2]) continue;
int &x=f[v1][v2];
int y=f[v1-drug[num][1]][v2-drug[num][2]]+drug[num][4];
if (y>x) x=y;
}
}
}
}
}
inline void p(){
printf("%d",f[a][b]);
}
int Main(){
in();
dp();
p();
return 0;
}
int main(){;}
int xlm=Main();