题意:指挥官给N个军人分配任务,需用 B[i] 的时间给第i个人陈述任务,而此人需用 J[i] 的时间去完成此任务。问最短执行完所有任务的总时间。
——>>水题。
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1000 + 10;
struct soldier
{
int B;
int J;
bool operator < (const soldier &s) const
{
return J > s.J;
}
};
int main()
{
int N, i, cnt = 1;
soldier s[maxn];
while(cin>>N)
{
if(N == 0) return 0;
for(i = 0; i < N; i++)
cin>>s[i].B>>s[i].J;
sort(s, s+N);
int sum_B = 0, sum = 0;
for(i = 0; i < N; i++)
{
sum_B += s[i].B;
sum = max(sum_B+s[i].J, sum);
}
cout<<"Case "<<cnt++<<": "<<sum<<endl;
}
return 0;
}