hdu 4221 greed 注意范围 工作延期,使整个工作时间罚时最少的单个罚时最长的值

#include <stdio.h>
#include <stdlib.h>

struct node
{
	int c;
	int d;
}nodes[100010];

int cmp(const void * a,const void * b)
{
	return (*(node *)a).d-(*(node *)b).d;
}

int main()
{
	int t,n,i,k=1;

	__int64 max,sum;

	scanf("%d",&t);

	while(t--)
	{
		max=0;

		sum=0;
		
		scanf("%d",&n);

		for(i=0;i<n;i++)
			scanf("%d%d",&nodes[i].c,&nodes[i].d);

		qsort(nodes,n,sizeof(nodes[0]),cmp);

		for(i=0;i<n;i++)
		{
			sum+=nodes[i].c;

			if(sum>nodes[i].d&&max<sum-nodes[i].d)
				max=sum-nodes[i].d;
		}
		printf("Case %d: %I64d\n",k++,max);
	}

	return 0;
}

  

posted @ 2012-04-27 21:13  shijiwomen  阅读(176)  评论(0编辑  收藏  举报