P8922 『MdOI R5』Squares

题目背景

本题不是数据结构题,建议先做 F。 [![1.gif](https://i.postimg.cc/7ZV6xBX6/1.gif)](https://postimg.cc/HrrHz9qD)

题目描述

给定平面上的 $n$ 个点,定义平面上的一个区域是好的当且仅当它是一个**边与坐标轴平行的正方形**并且不存在任何一个给定的点被它**严格包含**。再给定 $m$ 次询问,每次给出一个点 $(x,y)$,求出**严格包含** $(x,y)$ 的最大的好区域的边长。如果可以无限大则输出 $-1$。 点 $A$ 被区域 $B$ **严格包含**当且仅当 $A$ 在 $B$ 的内部且不在边界上。 为了减少奇奇怪怪的细节,我们保证所有的 $n+m$ 个点都满足横坐标互不相同,纵坐标互不相同。

输入格式

第一行,两个正整数 $n,m$。 接下来 $n$ 行,每行两个整数 $x,y$,表示一个给定的点 $(x,y)$。 接下来 $m$ 行,每行两个整数 $x,y$,表示一组询问中给定的点 $(x,y)$。

输出格式

共 $m$ 行,每行一个整数,第 $i$ 行的数表示第 $i$ 组询问的答案。

说明/提示

对于 $100\%$ 的数据,$1\le n,m\le 3\times 10^5$,$0\le x,y\le 10^8$。 $\operatorname{Subtask} 1(10\%)$:$n,m\le 10$。 $\operatorname{Subtask} 2(10\%)$:$n,m\le 100$。 $\operatorname{Subtask} 3(20\%)$:$n,m\le 10^3$。 $\operatorname{Subtask} 4(20\%)$:$n,m\le 5\times 10^4$。 $\operatorname{Subtask} 5(20\%)$:$n,m\le 10^5$。 $\operatorname{Subtask} 6(20\%)$:无特殊限制。 #### 样例说明 1 对于第一组询问,左下角为 $(0,0)$,边长为 $4$ 的正方形是严格包含 $(2,2)$ 的好区域中边长最大的。 对于第二组询问,左下角为 $(4,4)$,边长为 $+\infty$ 的正方形是严格包含 $(5,5)$ 的好区域中边长最大的。