题目背景
本题不是数据结构题,建议先做 F。
题目描述
给定平面上的 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 组询问的答案。
4 2
1 0
0 3
4 1
3 4
2 2
5 5
4
-1
提示
对于 100% 的数据,1≤n,m≤3×105,0≤x,y≤108。
Subtask1(10%):n,m≤10。
Subtask2(10%):n,m≤100。
Subtask3(20%):n,m≤103。
Subtask4(20%):n,m≤5×104。
Subtask5(20%):n,m≤105。
Subtask6(20%):无特殊限制。
样例说明 1
对于第一组询问,左下角为 (0,0),边长为 4 的正方形是严格包含 (2,2) 的好区域中边长最大的。
对于第二组询问,左下角为 (4,4),边长为 +∞ 的正方形是严格包含 (5,5) 的好区域中边长最大的。