码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ 3170 松鼠聚会

时间:2017-02-04 23:06:17      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:lld   ios   div   clu   namespace   span   val   inf   long   

日常刷水。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#define maxn 100500
#define inf 0x7f7f7f7f7f7f7f7fLL
using namespace std;
long long n,idx[maxn],idy[maxn],xs,ys,sumx[maxn],sumy[maxn],ans=inf;
struct data
{
    long long val;
    long long id;
    data (long long val,long long id):val(val),id(id) {}
    data () {}
}x[maxn],y[maxn];
bool cmp(data x,data y)
{
    return x.val<y.val;
}
int main()
{
    scanf("%lld",&n);
    for (long long i=1;i<=n;i++)
    {
        scanf("%lld%lld",&xs,&ys);
        x[i]=data(xs+ys,i);y[i]=data(xs-ys,i);
    }
    sort(x+1,x+n+1,cmp);sort(y+1,y+n+1,cmp);
    for (long long i=1;i<=n;i++) idx[x[i].id]=i,idy[y[i].id]=i;
    for (long long i=1;i<=n;i++) sumx[i]=sumx[i-1]+x[i].val,sumy[i]=sumy[i-1]+y[i].val;
    for (long long i=1;i<=n;i++)
    {
        long long k1=idx[i],k2=idy[i];
        ans=min(ans,sumx[n]-2*sumx[k1]+2*k1*x[k1].val-n*x[k1].val + sumy[n]-2*sumy[k2]+2*k2*y[k2].val-n*y[k2].val);
    }
    printf("%lld\n",ans/2);
    return 0;
}

 

BZOJ 3170 松鼠聚会

标签:lld   ios   div   clu   namespace   span   val   inf   long   

原文地址:http://www.cnblogs.com/ziliuziliu/p/6366486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!