poj 3269 Building A New Barn
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn=1e4+9;
int x[maxn],y[maxn];
struct D
{
int x,y;
bool operator <(const D &xx)const
{
if(x==xx.x)
return y<xx.y;
return x<xx.x;
}
}point[maxn]; int abs(int a)
{
if(a<0) return -a;
return a;
} int main()
{
// freopen("in.txt","r",stdin);
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d %d",&x[i],&y[i]);
point[i].x=x[i];
point[i].y=y[i];
}
sort(x+1,x+1+n);
sort(y+1,y+1+n);
sort(point+1,point+1+n);
int ans=0;
long long sum=0;
if(n&1||(x[n>>1]==x[n+2>>1]&&y[n>>1]==y[n+2>>1]))
{
bool flag=false;
int xx=x[n+1>>1],yy=y[n+1>>1];
for(int k=1;k<=n;k++)
if(point[k].x==xx&&point[k].y==yy)
flag=true;
if(!flag)
{
for(int i=1;i<=n;i++)
{
sum+=abs(x[i]-xx);
sum+=abs(y[i]-yy);
}
printf("%lld %d\n",sum,1);
}
else
{
for(int i=1;i<=n;i++)
{
sum+=abs(x[i]-(xx+1));
sum+=abs(y[i]-yy);
}
long long ret=sum,tmp=1;
sum=0;
for(int i=1;i<=n;i++)
{
sum+=abs(x[i]-(xx-1));
sum+=abs(y[i]-yy);
}
if(sum==ret) tmp++;
else if(sum<ret) ret=sum;
sum=0;
for(int i=1;i<=n;i++)
{
sum+=abs(x[i]-xx);
sum+=abs(y[i]-(yy+1));
}
if(sum==ret) tmp++;
else if(sum<ret) ret=sum;
sum=0;
for(int i=1;i<=n;i++)
{
sum+=abs(x[i]-xx);
sum+=abs(y[i]-(yy-1));
}
if(sum==ret) tmp++;
else if(sum<ret) ret=sum;
printf("%lld %d\n",sum,tmp);
}
}
else
{
for(int i=1;i<=n;i++)
{
sum+=abs(x[i]-x[n>>1]);
sum+=abs(y[i]-y[n>>1]);
}
int k=1;
for(int i=x[n>>1];i<=x[n+2>>1];i++)
for(int j=y[n>>1];j<=y[n+2>>1];j++)
{
for(;point[k].x<i||(point[k].x==i&&point[k].y<j);k++);
if(point[k].x!=i||point[k].y!=j) ans++;
}
printf("%lld %d\n",sum,ans);
}
return 0;
}
poj 3269 Building A New Barn的更多相关文章
- Bzoj 1696: [Usaco2007 Feb]Building A New Barn新牛舍 中位数,数学
1696: [Usaco2007 Feb]Building A New Barn新牛舍 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 394 Solve ...
- HDU 1815, POJ 2749 Building roads(2-sat)
HDU 1815, POJ 2749 Building roads pid=1815" target="_blank" style="">题目链 ...
- [USACO07FEB]新牛棚Building A New Barn
洛谷题目链接:[USACO07FEB]新牛棚Building A New Barn 题目描述 After scrimping and saving for years, Farmer John has ...
- poj 2749 Building roads (二分+拆点+2-sat)
Building roads Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6229 Accepted: 2093 De ...
- poj 3625 Building Roads
题目连接 http://poj.org/problem?id=3625 Building Roads Description Farmer John had just acquired several ...
- poj 2031 Building a Space Station【最小生成树prime】【模板题】
Building a Space Station Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5699 Accepte ...
- POJ 2031 Building a Space Station【经典最小生成树】
链接: http://poj.org/problem?id=2031 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#probl ...
- [USACO17JAN]Building a Tall Barn建谷仓
题目描述 Farmer John is building a brand new, NNN -story barn, with the help of his KKK cows ( 1≤N≤K≤101 ...
- POJ 2031 Building a Space Station
3维空间中的最小生成树....好久没碰关于图的东西了..... Building a Space Station Time Limit: 1000MS Memory Li ...
随机推荐
- perl正则表达式第一周笔记
正则表达式基础 ^ 行首标志 $ 行末标志 如^cat即一整行只有cat这个单词,^则是一个空行 [ ] 字符组,用来匹配若干字符之一 如gr[ae]y,即grey或者gray - 在字符组内部,字 ...
- PICT安装及使用
一:PICT安装 1.下载pict33.msi:http://vdisk.weibo.com/s/d6k2tcgXDa7Eq 2.安装: 二:PICT的使用 1.在F:\PICT 目录下,新建一个tx ...
- [原创]抢先DriverStudio夺取机器控制权(上篇)
原文链接:抢先DriverStudio夺取机器控制权 废话不谈,言归正传!大家都知道,装了DriverStudio软件(我使用的是v3.2版)的系统在启动时会显示其配置画面,(如图0所示) 图 0 这 ...
- 不可综合的verilog语句分析
前半部分转自http://www.cnblogs.com/Mrseven/articles/2247657.html,后半部分为自己测试结果. 基础知识:verilog 不可综合语句 (1)所有综合工 ...
- Trafic
Dialogue 1 You took the wrong bus 你做错车了 A:Hi, I want to see the Terra Cotta Warriors in Xi'an. Coul ...
- ASP.NET 连接 SQL Server 和 Oracle 教程
临近期末,有很多同学都问我怎么关于ASP.NET 连接 SQL Server 和 Oracle 的问题.由于人太多了,我也不能一一去帮忙,就写了这篇博客.希望对大家有用处. 首先,前期准备是要安装数据 ...
- 【Chromium中文文档】Chromium如何展示网页
Chromium如何展示网页 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//Start_Here_Backgrou ...
- React常用的命令解析
1.在目录终端下输入命令: browserify index.js -o bundle.js 该命令将require的所有文件统一打包在一个bundle.js文件中. 2.解释React文件 $ js ...
- 视频日志之android的总结与思考
四月份开始学android,并着手做这个项目,腾讯面试实习忙了半个月没有再做最终铩羽而归.做到5月30日,做了一个交差版,停下了差不多一个月,这两天再捡起完善一点. 项目是做一个视频保存和分享的网站, ...
- Linux ln命令具体解释及使用
Linux ln命令具体解释及使用 ln是linux中一个很重要命令,它的功能是为某一个文件在另外一个位置建立一个不同的链接,这个命令最经常使用的參数是-s,详细使用方法是:ln –s 源文件 目标文 ...