记录编号 | 410998 | 评测结果 | AAAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | [BYVoid S1] 灵魂分流药剂 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | C++ | 运行时间 | 0.030 s | ||
提交时间 | 2017-06-03 11:22:32 | 内存使用 | 0.76 MiB | ||
#include<fstream> #include<cmath> #include<iostream> using namespace std;//转自某大佬 ifstream fin("soultap.in"); ofstream fout("soultap.out"); int f[11][101][101]; int t[11]; int w[11][101]; int v[11][101]; int c[11][101]; int N,M,A,B; int main() { fin>>N>>M>>A>>B; int i,j,k,m; int a,b,p,d; for(i=1;i<=N;i++) { fin>>a>>b>>p>>d; t[p]++; w[p][t[p]]=a; v[p][t[p]]=b; c[p][t[p]]=d; } for(i=1;i<=M;i++){ for(k=0;k<=A;k++) for(m=0;m<=B;m++) f[i][k][m]=f[i-1][k][m]; for(k=1;k<=A;k++) for(m=1;m<=B;m++) for(j=1;j<=t[i];j++) { if(k>=w[i][j]&&m>=v[i][j]) f[i][k][m]=max(f[i][k][m],f[i-1][k-w[i][j]][m-v[i][j]]+c[i][j]); } } int temp=0; for(i=1;i<=M;i++) for(j=1;j<=A;j++) for(k=1;k<=B;k++) if(f[i][j][k]>temp) temp=f[i][j][k]; fout<<temp<<endl; return 0; }