hdu 4296 (成都赛区2012网络赛)

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <algorithm>
 5 
 6 using namespace std;
 7 
 8 #define maxn 100005
 9 
10 struct blo
11 {
12     int w;
13     int d;
14 }block[maxn];
15 
16 bool cmp(const blo&a,const blo&b)
17 {
18     return a.w+a.d<b.w+b.d;
19 }
20 
21 int main()
22 {
23     int n;
24     while(scanf("%d",&n) != EOF)
25     {
26         for(int i=0;i<n;i++)
27             scanf("%d%d",&block[i].w,&block[i].d);
28         sort(block,block+n,cmp);
29         __int64 sum=block[0].w;
30         __int64 ans=0;
31         for(int i=1;i<n;i++)
32         {
33             __int64 tmp = sum - block[i].d;
34             if(tmp>ans)
35                 ans=tmp;
36             sum+=block[i].w;
37         }
38         printf("%I64d\n",ans);
39     }
40     return 0;
41 
42 }

悲剧的孩子啊,,,比赛的时候把题意搞错了,,其实是使得最大的PDV尽可能地小,想想常理也该这样的,我们竟然求和了。以为是和最少。o(︶︿︶)o 唉。

原文地址:https://www.cnblogs.com/Missa/p/2696732.html