记录编号 |
127368 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[DreamTeam] 终极装备 |
最终得分 |
100 |
用户昵称 |
水中音 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.010 s |
提交时间 |
2014-10-15 16:29:41 |
内存使用 |
0.36 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,t,zhi[10001]={0},ci[201][2]={0},wi[201][2]={0},zj1,zj2,zj3,i,p;
int main()
{
freopen("besta.in","r",stdin);
freopen("besta.out","w",stdout);
scanf("%d%d%d",&m,&n,&t);
for(i=1;i<=n;i++) scanf("%d%d%d%d",&ci[i][0],&wi[i][0],&ci[i][1],&wi[i][1]);
for(i=1;i<n;i++)
{
if(wi[i][0]>wi[i][1]){zj2=wi[i][0];zj3=1;}
else {zj2=wi[i][1];zj3=0;}
for(p=m;p>=zj2;p--)
{
if(zhi[p]<zhi[p-wi[i][0]]+ci[i][0])zhi[p]=zhi[p-wi[i][0]]+ci[i][0];
if(zhi[p]<zhi[p-wi[i][1]]+ci[i][1])zhi[p]=zhi[p-wi[i][1]]+ci[i][1];
}
for(;p>=wi[i][zj3];p--)
if(zhi[p]<zhi[p-wi[i][zj3]]+ci[i][zj3])zhi[p]=zhi[p-wi[i][zj3]]+ci[i][zj3];
}
if(m>=wi[n][0]&&zhi[m]<zhi[m-wi[n][0]]+ci[n][0]) zhi[m]=zhi[m-wi[n][0]]+ci[n][0];
if(m>=wi[n][1]&&zhi[m]<zhi[m-wi[n][1]]+ci[n][1]) zhi[m]=zhi[m-wi[n][1]]+ci[n][1];
t+=zhi[m];
printf("%d\n",t);
return 0;
}