垃圾陷阱

垃圾陷阱

#include<cstdio>
#include<algorithm>
using namespace std;
struct item
{
int t,h,f;
bool operator < (const item& x) const
{
return t<x.t;
}
};
int D,G,rest_time[100],ans,longest;
item junk[100];
bool escape=false;
/*_init()
{
item rest;
if(item.h<=item.h)
return 0
}*/
int main()
{
scanf("%d%d",&D,&G);
for(int i=0;i<G;i++)
scanf("%d%d%d",&junk[i].t,&junk[i].f,&junk[i].h);
sort(junk,junk+G);
rest_time[0]=10;
for(int i=0;i<G;i++)
{
for(int j=0;j<D;j++)
{
rest_time[j]-=junk[i].t;
if(i>0)
rest_time[j]+=junk[i-1].t;
}
for(int j=D-1;j>=0;j--)
if(rest_time[j]>=0)
{
if(j+junk[i].h<D)
rest_time[j+junk[i].h]=max(rest_time[j+junk[i].h],rest_time[j]);
else

{
escape=true;
ans=junk[i].t;
break;
}
rest_time[j]+=junk[i].f;

}
if(escape)
break;
}
printf("%d\n",escape?ans:junk[G-1].t+rest_time[0]);
return 0;
}

posted @ 2016-10-24 09:11 Minepressure 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值