记录编号 79565 评测结果 AAAAAAAAAA
题目名称 垃圾陷阱 最终得分 100
用户昵称 Gravatardigital-T 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2013-11-05 22:02:29 内存使用 0.31 MiB
显示代码纯文本
#include<fstream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
ifstream fi("well.in");
ofstream fo("well.out");
const int INF=0x7FFFFFFF;
int D,G,dp[101];
class gar
{
public:
	int T,F,H;
}g[101];
bool op(gar x,gar y){return x.T<y.T;}
int main()
{
	fi>>D>>G;
	for(int i=1;i<=G;i++)fi>>g[i].T>>g[i].F>>g[i].H;
	sort(g+1,g+G+1,op);
	bool boo;
	memset(dp,0,sizeof(dp));
	dp[0]=10;//爬到j高度时最大的剩余存活时间
	for(int i=1;i<=G;i++)
	{
		boo=false;
		for(int j=D;j>=0;j--)
		if(dp[j]>=g[i].T)
		{
			if(j+g[i].H>=D)
			{
				fo<<g[i].T<<endl;
				goto NEXT;
			}
			if(dp[j]>dp[j+g[i].H])
				dp[j+g[i].H]=dp[j];
			dp[j]+=g[i].F;
			boo=true;
		}
		if(!boo)break;
	}
	fo<<dp[0]<<endl;
	NEXT:;
	return 0;
}