Description

The map of the capital of Berland can be viewed on the infinite coordinate plane. Each point with integer coordinates contains a building, and there are streets connecting every building to four neighbouring buildings. All streets are parallel to the coordinate axes.

The main school of the capital is located in (sx,sy)(sx,sy)(sx,sy). There are n students attending this school, the i-th of them lives in the house located in (xi,yi). It is possible that some students live in the same house, but no student lives in (sx,sy)(sx,sy)(sx,sy).

After classes end, each student walks from the school to his house along one of the shortest paths. So the distance the iii-th student goes from the school to his house is ∣sx−xi∣+∣sy−yi∣|s_x−x_i|+|s_y−y_i|∣sx​−xi​∣+∣sy​−yi​∣.

The Provision Department of Berland has decided to open a shawarma tent somewhere in the capital (at some point with integer coordinates). It is considered that the iii-th student will buy a shawarma if at least one of the shortest paths from the school to the iii

-th student’s house goes through the point where the shawarma tent is located. It is forbidden to place the shawarma tent at the point where the school is located, but the coordinates of the shawarma tent may coincide with the coordinates of the house of some student (or even multiple students).

You want to find the maximum possible number of students buying shawarma and the optimal location for the tent itself.

Input

The first line contains three integers nnn, sxsxsx, sy(1≤n≤200000,0≤sx,sy≤109)sy (1≤n≤200000, 0≤sx,sy≤10^9)sy(1≤n≤200000,0≤sx,sy≤109) — the number of students and the coordinates of the school, respectively.

Then nnn lines follow. The iii-th of them contains two integers xi,yi(0≤xi,yi≤109)xi, yi (0≤x_i,y_i≤10^9)xi,yi(0≤xi​,yi​≤109) — the location of the house where the iii-th student lives. Some locations of houses may coincide, but no student lives in the same location where the school is situated.

Output

The output should consist of two lines. The first of them should contain one integer ccc — the maximum number of students that will buy shawarmas at the tent.

The second line should contain two integers pxp_xpx​ and pyp_ypy​ — the coordinates where the tent should be located. If there are multiple answers, print any of them. Note that each of pxp_xpx​ and pyp_ypy​ should be not less than 000 and not greater than 10910^9109.

题意

给定原点和若干点,定义点到原点距离为∣sx−xi∣+∣sy−yi∣|s_x−x_i|+|s_y−y_i|∣sx​−xi​∣+∣sy​−yi​∣,现在要选择一个位置建造帐篷,若一个点到原点有经过这个帐篷的最短路径,那么就会产生111点贡献。问在哪里建造帐篷能获得的贡献值最大。

思路

很显然,一个点到原点的最短路径可行方案覆盖了以该点和原点为对角顶点的整个矩形。



大概就是这样的一个矩形。因此我有了一个很自然的思路:每次给这个矩形里所有值+1,最后统计答案遍历每个点即可。

打算二维树状数组搞一搞,然后发现值域过大……

正解:这个矩形的某一个顶点是确定的,即原点是确定的,那么一定只有这几种情况:

  1. 点在原点的左上方,那么建筑在原点左一格和原点上一格都可以让该点产生贡献。
  2. 点在原点的左下方,那么建筑在原点左一格和原点下一格都可以让该点产生贡献。
  3. 点在原点的右上方,那么建筑在原点右一格和原点上一格都可以让该点产生贡献。
  4. 点在原点右下方,那么建筑在原点右一格和原点下一格都可以让该点产生贡献。

    也就是说,原点上下左右四个建筑位置一定是最优的。

    归纳一下,得到:

原点左边的所有点都会对建筑在原点左一格的情况产生贡献。

原点右边的所有点都会对建筑在原点右一格的情况产生贡献。

原点上方的所有点都会对建筑在原点上一格的情况产生贡献。

原点下方的所有点都会对建筑在原点上一格的情况产生贡献。



在其他位置建筑的话,肯定都不如这四个点,可以画一下贡献区域感受一下。

Code

#include <cstdio>
using namespace std;
inline char nc()
{
static char buf[1000000],*p1 = buf,*p2 = buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++;
}
template<typename T>
void read(T &r)
{
static char c; r=0;
for(c=nc();c>'9'||c<'0';c=nc());
for(;c>='0'&&c<='9';r=(r<<1)+(r<<3)+(c^48),c=nc());
}
int n,p,q;
int l,r,top,bottom;
inline int max(const int &a,const int &b){return a>b?a:b;}
int main()
{
read(n);
read(p);
read(q);
int x,y;
for(;n;--n)
{
read(x);
read(y);
if(x < p)
++l;
else if(x > p)
++r;
if(y > q)
++top;
else if(y < q)
++bottom;
}
int maxx = max(l,max(r,max(top,bottom)));
printf("%d\n",maxx);
if(maxx == l)
printf("%d %d",p - 1,q);
else if(maxx == r)
printf("%d %d",p + 1,q);
else if(maxx == top)
printf("%d %d",p,q+1);
else
printf("%d %d",p,q-1);
return 0;
}

[Codeforces #608 div2]1271C Shawarma Tent的更多相关文章

  1. [Codeforces #608 div2]1271D Portals

    Description You play a strategic video game (yeah, we ran out of good problem legends). In this game ...

  2. [Codeforces #608 div2]1272B Blocks

    Description There are nnn blocks arranged in a row and numbered from left to right, starting from on ...

  3. [Codeforces #608 div2]1271A Suits

    Description A new delivery of clothing has arrived today to the clothing store. This delivery consis ...

  4. Codeforces #180 div2 C Parity Game

    // Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...

  5. Codeforces #541 (Div2) - E. String Multiplication(动态规划)

    Problem   Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...

  6. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

  7. Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)

    Problem   Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...

  8. Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

    Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

  9. 【Codeforces #312 div2 A】Lala Land and Apple Trees

    # [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...

随机推荐

  1. Java后台技术IBATIS入门

    做过.net后台开发的同志一定用过Entity FrameWork,该框架实现了实体Entity到数据库行的映射,通过操作实体DataSet,就能够直接同步修改到数据库.但是Java暂时没有类似的技术 ...

  2. sql 中u.*什么意思

    i.*  i是一个表的别名,i.*是这个表的所有列,比如 select i.* from customer i; 相当于 select id,name,password from customer;

  3. 最全BT磁力搜索引擎,国外最受欢迎的BT-磁力网站(整理分享,每日不断更新...)

    最全BT磁力搜索引擎索引(整理分享,每日更新) 1.海盗湾 The Pirate Bay 2.磁力天堂(BT磁力搜索下载-磁力天堂) www.btaa.xyz  (资源多,下载速度可以,建议用手机访问 ...

  4. paramiko linux pip18.1

    Collecting paramiko Downloading https://files.pythonhosted.org/packages/cf/ae/94e70d49044ccc234bfdba ...

  5. vector的使用-Hdu 4841

    圆桌问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submis ...

  6. 「USACO5.5」矩形周长Picture

    题目描述 墙上贴着许多形状相同的海报.照片.它们的边都是水平和垂直的.每个矩形图片可能部分或全部的覆盖了其他图片.所有矩形合并后的边长称为周长. 编写一个程序计算周长. 如图1所示7个矩形. 如图2所 ...

  7. 了解Web的相关知识

    一.WWW基础 WWW(world wide web, 万维网)是Internet上基于客户端/服务器体系结构的分布式多平台的超文本超媒体信息服务系统.它利用超文本(hypertext).超媒体(hy ...

  8. python中 yield 的用法 (简单、清晰)

    首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂 ...

  9. 15条MySQL改善经验让系统更稳定

    MySQL 作为目前的主流开源数据库, 既能挑战 “双11”,又能扛起 “618”,比起网红版数据库,MySQL 绝对是实力担当. 1. 为查询缓存优化查询 像 NOW() 和 RAND() 或是其它 ...

  10. 十四 OGNL的概述

    1 什么是OGNL? 对象图导航语言(对象图,以任意一个对象为根,通过OGNL;可以访问与这个对象关联的其他对象).比EL表达式强大很多倍. 可以存取对象的任意属性.调用对象的方法,遍历整个对象的结构 ...