刷水~

Code:

#include<bits/stdc++.h>
using namespace std;
#define setIO(s) freopen(s".in","r",stdin)
#define maxn 300000
#define inf 1000000
deque<int>p,q;
struct Node
{
int x,y;
}nd[maxn];
bool cmp(Node a, Node b)
{
return a.x < b.x;
}
int main()
{
// setIO("input");
int n,D,ans=inf;
scanf("%d%d",&n,&D);
for(int i=1;i<=n;++i)
{
scanf("%d%d",&nd[i].x,&nd[i].y);
}
sort(nd+1,nd+1+n,cmp);
for(int i=1;i<=n;++i)
{
while(!p.empty()&&nd[i].y>=nd[p.back()].y) p.pop_back();
while(!q.empty()&&nd[i].y<=nd[q.back()].y) q.pop_back();
p.push_back(i), q.push_back(i);
int pre=0;
while(!p.empty()&&nd[p.front()].y-nd[i].y>=D) { pre=nd[p.front()].x; p.pop_front(); }
if(pre) ans=min(ans, nd[i].x - pre);
pre=0;
while(!q.empty()&&nd[i].y-nd[q.front()].y>=D) { pre=nd[q.front()].x; q.pop_front(); }
if(pre) ans=min(ans, nd[i].x - pre);
}
printf("%d\n",ans==inf?-1:ans);
return 0;
}

  

最新文章

  1. 手机GUI自动化测试工具选择
  2. windows10 网络热点
  3. VisualSVN Server和Subversion的联系
  4. STM32全球唯一ID读取方法
  5. Object Pascal 语法之异常处理
  6. 16道嵌入式C语言面试题
  7. flume 报File Channel transaction capacity cannot be greater than the capacity of the channel capacity错误
  8. hdu 4712 (随机算法)
  9. Android MAVEN项目标准目录结构
  10. JVM试用G1的垃圾收集器
  11. iOS之极光推送
  12. Kyoto Cabinet--nosql型单机数据库
  13. ECMAScript 6 入门 ----Generator 函数
  14. Spring-Boot配置文件web性能(服务器)配置项
  15. Y1O001波分复用器
  16. 如何入门vue之一
  17. Mac配置Node.js环境
  18. laravel框架数据迁移
  19. mysql_变量
  20. oracle修改内存使用和性能调节,SGA

热门文章

  1. 什么是Shell?Shell脚本基础知识详细介绍
  2. mysql的my.sock不存在问题
  3. vps国外节点ubuntu修改时区重启不失效
  4. SQL如何通过当前日期获取上周一日期【转】
  5. debian 安装java
  6. 图论 test solution
  7. Paper Reading_Database
  8. 剑指offer-从尾到头打印链表-链表-python
  9. asp.net Excel导入和导出
  10. k3 cloud注册插件的时候提示,请选择一个有效的插件程序集