【题目翻译】:
【思路】:
贪心算法:处理时间长的先交代。按照J从大到小的顺序给任务排序,依次交代。
#include<stdio.h>
#include<stdlib.h>
typedef struct Time{
int B;
int J;
}Time;
int cmp(const void *a,const void *b){
struct Time * c = (Time *)a;
struct Time * d = (Time *)b;
return d->J - c->J;
}
Time T[1001];
int main()
{
int i,N,Case=1;
while(scanf("%d",&N)!=EOF && N!=0){
for(i=0;i<N;i++){
scanf("%d%d",&T[i].B,&T[i].J);
}
qsort(T,N,sizeof(T[0]),cmp);
int startTime=0;
int endTime=0;
for(i=0;i<N;i++){
startTime += T[i].B;
if(endTime < T[i].J + startTime){
endTime = T[i].J + startTime;
}
}
printf("Case %d: %d\n",Case,endTime);
Case++;
}
return 0;
}