题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2829
题意:给出n个部下交待任务所需要的时间和完成任务所需要的时间,求出完成所有任务所需要的总时间数
思路:先建立一个结构体,然后将里面的数据按完成时间的大小排序
#include <stdio.h>
#include <algorithm>
using namespace std;
struct NODE
{
int wait;
int work;
} war[1005];
int cmp(NODE x,NODE y)
{
if(x.work > y.work)
return 1;
return 0;
}
int main()
{
int n,cas = 1;
while(~scanf("%d",&n),n)
{
int i;
int t,ans = 0,sum = 0;
for(i = 0; i<n; i++)
scanf("%d%d",&war[i].wait,&war[i].work);
sort(war,war+n,cmp);
for(i = 0;i<n;i++)
{
sum+=war[i].wait;
ans = max(ans,sum+war[i].work);
}
printf("Case %d: %d\n",cas++,ans);
}
return 0;
}