Control 4289
来源:互联网 发布:淘宝上心悦会员怎么刷 编辑:程序博客网 时间:2024/05/17 08:41
/*令F=w+s,S=sigma(wi) i=[0,n-1]按F从大到小排序若按从大到小放容易知道pdv_1=S-(Wmax+Smax), (假设Fmax=Wmax+Smax)pdv_2=S-Wmax-(Wi+Si)若第i块与最大的那块互换位置pdv_11=S-(Wi+Si)pdv_22=S-Wi-(Wmax+Smax)显然 pdv_11>pdv_1 pdv_11>pdv_2 */#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;typedef __int64 lld;const int maxn=100005;struct Node{ lld w,s; lld f; bool operator<(const Node &t)const { return f>t.f; } }p[maxn]; int main(){ int n; int i,j; lld sum; while(scanf("%d",&n)!=EOF){ sum=0; for(i=0;i<n;i++){ scanf("%I64d%I64d",&p[i].w,&p[i].s); p[i].f=p[i].w+p[i].s; sum+=p[i].w; } sort(p,p+n); lld ans=0; for(i=0;i<n;i++){ if(sum-p[i].f>ans){ ans=sum-p[i].f; } sum-=p[i].w; } printf("%I64d\n",ans); } return 0; }