记录编号 29313 评测结果 AAAAAAAAAA
题目名称 垃圾陷阱 最终得分 100
用户昵称 GravatarTBK 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2011-10-21 12:17:15 内存使用 0.27 MiB
显示代码纯文本
#include <iostream>   
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;   
int a,b,c,d,l,m,t=10,k[101];   
bool bo=false;   
struct fun
{
	int x;
	int y;
	int z;
}f[100];
int Compare(const void *elem1,const void *elem2)
{
	struct fun *elem3=(struct fun *)elem1;
	struct fun *elem4=(struct fun *)elem2;
	return (elem3->x > elem4->x) ?1:-1;
} 
int main(void)   
{   
    freopen ("well.in","r",stdin);   
    freopen ("well.out","w",stdout);   
    scanf("%d%d",&b,&c);   
    for (d=0;d<c;d++) scanf("%d%d%d",&f[d].x,&f[d].y,&f[d].z);   
	qsort(f,c,sizeof(fun),Compare);
	k[0]=10;
	for (d=0;d<c;d++)
	{
		bo=false;
		for (l=b;l>=0;l--)
			if (k[l]>=f[d].x)
			{
				if (l+f[d].z>=b)
				{
					printf("%d",f[d].x);
					goto end;
				}
				if (k[l]>k[l+f[d].z]) k[l+f[d].z]=k[l];
				k[l]+=f[d].y;
				bo=true;
			}
		if (!bo) break;
	}
	printf("%d",k[0]);
	end:
    fclose(stdin);   
    fclose(stdout);  
    return 0;   
}