Commando Wa
n个部下,布置任务需要b分钟,完成任务需要j分钟,如何布置最短时间全部完成。从完成任务需要世间最长的开始布置,贪心。代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
struct task{
int ttime,dotime;
};
bool cmp(task a,task b){
return a.dotime>b.dotime;
}
int main(){
int N,kase=1;
while(scanf("%d",&N)==1&&N){
task man[1005];
for(int i=0;i<N;i++)
scanf("%d%d",&man[i].ttime,&man[i].dotime);
sort(man,man+N,cmp);
int ans=0,talktime=0;
for(int i=0;i<N;i++){
talktime+=man[i].ttime;//布置任务所需时间
ans=max(ans,talktime+man[i].dotime);//完成任务所需时间
}
printf("Case %d: %d\n",kase++,ans);
}
return 0;
}