7610: 选择配送

内存限制:128 MB 时间限制:2 S
题面:Markdown 评测方式:文本比较 上传者:
提交:4 通过:4

题目描述

在一个二维平面城市中,有 $ n $ 个客户,第 $i$ $\left(1\leq i\leq n\right)$ 个客户的位置坐标为 $ \left(x_i, y_i\right) $。快递侠需要在 $ m $ 个候选配送站中选择一个作为自己的起始点,第 $j$ $\left(1\leq j\leq m\right)$ 个配送站的坐标为 $ \left(a_j, b_j\right) $。快递侠在城市中移动时,只能沿水平或垂直方向走,因此两点之间的距离为曼哈顿距离,即对于两点 $ \left(p_1, q_1\right) $ 和 $ \left((p_2, q_2\right) $,距离定义为 $ |p_1 - p_2| + |q_1 - q_2| $。 快递侠希望选择一个配送站,使得他到最远的客户的距离(即到所有客户的曼哈顿距离的最大值)尽可能小。请你帮助快递侠计算出这个最小的最大距离是多少。 --- 为了防止输入过大带来的常数问题,`C++` 选手请尽量使用关闭流同步的 `std::cin` 和 `std::cout` 实现输入输出,否则可能出现因读入输出问题导致的 TLE 等。 ```cpp int main(){ std::ios::sync_with_stdio(0); std::cin.tie(0); // your code return 0; } ```

输入格式

第一行一个整数 $ T $ $ \left(1 \leq T \leq 10^6\right) $,表示测试数据组数。 第一行包含两个整数 $ n $ 和 $ m $,分别表示客户数量和候选配送站数量。 接下来 $ n $ 行,每行包含两个整数 $ x_i, y_i $ $ \left(1 \leq x_i, y_i \leq 10^9\right) $,表示第 $ i $ 个客户的位置坐标。 接下来 $ m $ 行,每行包含两个整数 $ a_i, b_i $ $ \left(1 \leq a_i, b_i \leq 10^9\right) $,表示第 $ i $ 个候选配送站的位置坐标。 保证所有测试数据的 $ n $ 之和与 $ m $ 之和均不超过 $ 10^6 $。

输出格式

对于每组测试数据,输出一行一个整数,表示快递侠选择最优配送站后,到所有客户的曼哈顿距离的最大值的最小值。

输入样例 复制

2
2 2
1 2
2 1
1 1
2 2
3 2
1 1
2 2
3 3
1 1
2 2

输出样例 复制

1
2