记录编号 99788 评测结果 AAAAA
题目名称 [UVa 11729] 突击战 最终得分 100
用户昵称 Gravatar752199526 是否通过 通过
代码语言 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;
}