首页 > 代码库 > 11729 - Commando War

11729 - Commando War

题目:一个长官给n个人安排任务,每个人描述问题和解决问题的时间分别为Bi、Ji,求所有人完成任务的最早时间。

分析:贪心。案结束时间递减排序即可。

说明:最近打钢铁雄心影响进度了(⊙_⊙)。

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>

using namespace std;

typedef struct node
{
	int B,J;
}data;
data D[10001];

int cmp(data a, data b)
{
	if (a.J == b.J)
		return a.B < b.B;
	return a.J > b.J;
}

int main()
{
	int n,T = 1;
	while (scanf("%d",&n) && n) {
		for (int i = 0 ; i < n ; ++ i)
			scanf("%d%d",&D[i].B,&D[i].J);
		
		sort(D, D+n, cmp);
		int Max = 0,Now = 0;
		for (int i = 0 ; i < n ; ++ i) {
			Now += D[i].B;
			if (Max < Now+D[i].J)
				Max = Now+D[i].J;
		} 
		
		printf("Case %d: %d\n",T ++,Max);
	}
    return 0;
}



11729 - Commando War