Description
Input
输入包含多组数据,每组数据的第一行为部下的个数n(1<=n<=1000);以下n行,每行两个正整数B和J(1<=B<=10000,1<=J<=10000),即交待任务的时间和执行任务的时间。输入结束标志为n=0。
Output
对组每组数据,输出所有任务完成的最短时间。具体输出格式见样例,用Case开头,Case以后输出当前数据的序号,然后输出答案。
Sample Input
Sample Output
#include<iostream> #include<stdio.h> #include<algorithm> using namespace std; struct Node{ int b,j; }wor[1005]; bool cmp(Node w1,Node w2){ return w1.j>w2.j; } int main(){ int n; int t=1; while((scanf("%d",&n))&&n!=0){ for(int i=0;i<n;i++){ scanf("%d%d",&wor[i].b,&wor[i].j); } sort(wor,wor+n,cmp); int tmp=0; int ans=0; for(int i=0;i<n;i++){ tmp+=wor[i].b; ans=max(tmp+wor[i].j,ans); } printf("Case %d: %d\n",t++,ans); } return 0; }
原文:http://www.cnblogs.com/superxuezhazha/p/5686076.html