Uva11729 Commando War

相邻两个士兵交换顺序,不会对其他的有所影响,贪心考虑两两之间交换策略即可。

sort大法好。印象中这类排序题里有一种会卡sort,只能冒泡排序,然而到现在还没有遇到

 

 1 /**/
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<algorithm>
 6 using namespace std;
 7 struct node{
 8     int b;
 9     int j;
10 };
11 int cmp(const node a,const node b){
12     return a.j>b.j;
13 }
14 int main(){
15     int n,b,j;
16     int case_count=1;
17     while(scanf("%d",&n)!=EOF &&n){
18         struct node sod[10500];
19         int i;
20         for(i=1;i<=n;i++)
21             scanf("%d%d",&sod[i].b,&sod[i].j);
22         sort(sod+1,sod+n+1,cmp);
23         int s=0;
24         int ans=0;
25         for(i=1;i<=n;i++){
26             s+=sod[i].b;
27             ans=max(ans,s+sod[i].j);
28             }
29         printf("Case %d: %d\n",case_count++,ans);    
30     }    
31     
32     return 0;
33     
34 }

 

posted @ 2016-11-07 15:16  SilverNebula  阅读(115)  评论(0编辑  收藏  举报
AmazingCounters.com