分析:
j大的先完成,j小的后完成。
#include<bits/stdc++.h>
using namespace std;
#define N 1000005
int n,m,iCase=0;
struct Soldir{
int b,j;
bool operator<(const Soldir x)const{
return j>x.j;
}
}a[N];
void Solve(){
for(int i=0;i<n;i++){
scanf("%d%d",&a[i].b,&a[i].j);
}
sort(a,a+n);
int res = a[0].b;
int Max = a[0].b+a[0].j;
for(int i=1;i<n;i++){
res+=a[i].b;
Max=max(Max,res+a[i].j);
}
cout<<"Case "<<++iCase<<": ";
cout<<Max<<endl;
return;
}
int main(){
while(scanf("%d",&n),n){
Solve();
}
}
/**
2 3
5
4
7
8
4
2 1
5
5
10
**/