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; }

原创粉丝点击