BZOJ 1629: [Usaco2007 Demo]Cow Acrobats【排序】
1629: [Usaco2007 Demo]Cow Acrobats
【题目描述】
传送门
【题解】
这题其实很简单的,我们无非就考虑两种情况,i在j上,j在i上。
i在j上:
j在i上:
移项得:
按照这个进行排序就可以了。
代码如下
#include<cstdio>
#include<algorithm>
#define LL long long
using namespace std;
int n;LL Ans=-1e9;
struct xcw{
LL W,S;
bool operator <(const xcw b)const{return W+S<b.W+b.S;}
}a[50005];
int main(){
#ifndef ONLINE_JUDGE
freopen("prob.in","r",stdin);
freopen("prob.out","w",stdout);
#endif
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%lld%lld",&a[i].W,&a[i].S);
sort(a+1,a+1+n);
LL W=0;
for(int i=1;i<=n;i++) Ans=max(W-a[i].S,Ans),W+=a[i].W;
printf("%lld\n",Ans);
return 0;
}