Waiting for orders we held in the wood, word from the front never came

By evening the sound of the gunfire was miles away

Ah softly we moved through the shadows, slip away through the trees

Crossing their lines in the mists in the fields on our hands and our knees

And all that I ever, was able to see

The fire in the air, glowing red, silhouetting the smoke on the breeze

There is a war and it doesn't look very promising for your country. Now it's time to act. You have a commando squad at your disposal and planning an ambush on an important enemy camp located nearby. You have N soldiers in your squad. In your master-plan, every single soldier has a unique responsibility and you don't want any of your soldier to know the plan for other soldiers so that everyone can focus on his task only. In order to enforce this, you brief every individual soldier about his tasks separately and just before sending him to the battlefield. You know that every single soldier needs a certain amount of time to execute his job. You also know very clearly how much time you need to brief every single soldier. Being anxious to finish the total operation as soon as possible, you need to find an order of briefing your soldiers that will minimize the time necessary for all the soldiers to complete their tasks. You may assume that, no soldier has a plan that depends on the tasks of his fellows. In other words, once a soldier begins a task, he can finish it without the necessity of pausing in between.

Input

There will be multiple test cases in the input file. Every test case starts with an integer N (1<=N<=1000), denoting the number of soldiers. Each of the following N lines describe a soldier with two integers B (1<=B<=10000) & J (1<=J<=10000). B seconds are needed to brief the soldier while completing his job needs J seconds. The end of input will be denoted by a case with N =0 . This case should not be processed.

Output

For each test case, print a line in the format, Case X: Y, where X is the case number & Y is the total number of seconds counted from the start of your first briefing till the completion of all jobs.

Sample Input Output for Sample Input

3

2 5

3 2

2 1

3

3 3

4 4

5 5

0

Case 1: 8

Case 2: 15

题解:贪心,按执行任务的时间从大到小排,得到的就是最优解

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> using namespace std; struct node
{
int b,j;
}p[1005]; bool cmp(node x,node y)
{
return x.j>y.j;
}
int main()
{
int N;
int cnt=1;
while(scanf("%d",&N)&&N)
{
for(int t=0;t<N;t++)
{
scanf("%d%d",&p[t].b,&p[t].j);
}
sort(p,p+N,cmp);
long long int s=0,sum=0;
for(int t=0;t<N;t++)
{
s+=p[t].b;
sum=max(sum,s+p[t].j);
}
printf("Case %d: %lld\n",cnt++,sum);
}
}

最新文章

  1. 打造TypeScript的Visual Studio Code开发环境
  2. Scala 深入浅出实战经典 第41讲:List继承体系实现内幕和方法操作源码揭秘
  3. 1.10 编程之美-双线程下载[double threads to download]
  4. Writable、WritableComparable和comparators
  5. cdoj 25 点球大战(penalty) 模拟题
  6. Qt学习总结-ui篇(二)
  7. SQL学习:主键,外键,主键表,外键表,数据库的表与表之间的关系;
  8. CSS 根据数据显示样式
  9. php注册登录源代码
  10. [Luogu 3389]【模板】高斯消元法
  11. Git_GitHub-使用过程遇到的问题——坑(持续添加)
  12. awk\sed\grep 补充
  13. 20 Zabbix 利用Scripts栏目对Hosts远程执行命令
  14. 每天进步一点点-Java IO操作-Java Serializable(对象序列化)的理解和总结
  15. AutoMapper之嵌套映射
  16. 相关性系数及其python实现
  17. MYSQL查询一周内的数据(最近7天的)
  18. ny509 因子和阶乘
  19. Oracle事务的ACID特性
  20. C#集合之栈

热门文章

  1. @property@classmethod@staticmethod
  2. python5.2文件写入
  3. AI测温落地趋势:已成日常刚需 产品形态呈细分化发展
  4. Setup Factory 9 打包安装程序过程中提示安装.net4.5、并启用md5加密算法
  5. java Eclipse刷新报错 Feature &#39;taglib&#39; not found.
  6. JS学习第一天
  7. java 序列化流与反序列化流
  8. Excel 科学计数法数值转换
  9. 开发APP遇到的问题
  10. java.io.IOException: Stream closed 的问题