记录编号 |
99788 |
评测结果 |
AAAAA |
题目名称 |
[UVa 11729] 突击战 |
最终得分 |
100 |
用户昵称 |
752199526 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.561 s |
提交时间 |
2014-04-30 20:22:18 |
内存使用 |
0.47 MiB |
显示代码纯文本
#include<iostream>
#include<fstream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cctype>
#include<deque>
#include<queue>
#include<stack>
#include<cassert>
#include<ctime>
#include<algorithm>
#include<functional>
using namespace std;
ifstream fin("commando.in");
ofstream fout("commando.out");
class task
{
public:
int b,j;//交代任务时间和工作时间
}job[20000]={0},t;
int n;
void bubblesort(void)
{
for(int i=0;i<n;i++)
{
bool f=true;
for(int k=0;k<n-i-1;k++)
{
if(job[k].j<job[k+1].j){t=job[k];job[k]=job[k+1];job[k+1]=t;f=false;}
}
if(f==true)break;
}
}
int main()
{
int Case=0;
while(fin>>n&&n!=0)
{
//Input and sort===========================================================
for(int i=0;i<n;i++)fin>>job[i].b>>job[i].j;bubblesort();
//=========================================================================
int s=0,ans=0;
for(int i=0;i<n;i++)
{
s+=job[i].b;//交代任务所需时间存入临时变量
ans=max(ans,s+job[i].j);
/*比较过程中,s没有变,因此直到交代任务和
工作时间大于ans时,ans的值才会改变。同时,
工作时间已经含在s+=job[i].b的过程中,就
不再进行考虑。*/
}
fout<<"Case "<<++Case<<": "<<ans<<endl;
}
return 0;
}