题目:Commando War
思路:优先队列
代码:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<string>
#include<map>
#include<set>
#include<queue>
#include<deque>
#include<algorithm>
#include<cmath>
using namespace std;
struct A{
int x,y;
A(){}
A(int xx,int yy) {
x=xx,y=yy;
}
bool operator <(const A& b) const {
if(y>b.y||(y==b.y&&x>b.x)) return true;
return false;
}
};
A a[1005];
int n;
int Do(){
sort(a+1,a+n+1);
int sum=0,t=0;
for(int i=1;i<=n;i++){
t+=a[i].x;
sum=max(sum,t+a[i].y);
}
return sum;
}
int main() {
int T=0;
while(~scanf("%d",&n)&&n!=0){
for(int i=1;i<=n;i++){
int x,y;
scanf("%d%d",&x,&y);
a[i]=A(x,y);
}
int ans=Do();
printf("Case %d: %d\n",++T,ans);
}
return 0;
}