n个部下 每个部下i 要 Bi分钟交代任务 Ji分钟 完成任务 求怎么安排可以在最短时间内完成任务
因为只要交代任务后可以同时进行多个任务 所以时间长的任务放在前面先做 贪心
#include <stdio.h>
#include <algorithm>
using namespace std;
struct node
{
int b;
int j;
}a[1010];
bool cmp(node a,node b)
{
return a.j > b.j;
}
int max(int x,int y)
{
return x > y? x: y;
}
int main()
{
int n,i,ans,t,cas = 1;
while(scanf("%d",&n),n)
{
for(i = 0;i < n; i++)
scanf("%d %d",&a[i].b,&a[i].j);
sort(a,a+n,cmp);
ans = 0;
t = 0;
for(i = 0;i < n; i++)
{
t += a[i].b;
ans = max(ans,t + a[i].j);
}
printf("Case %d: %d\n",cas++,ans);
}
return 0;
}