小红开机厅
题号:NC311233
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}在平面直角坐标系上,有位于 \left(x_a, y_a \right) 的小红的家与位于 \left(x_b, y_b \right) 的小紫的家,还有 n 个互不相同、不与两人的家重合的整点坐标,表示机厅的位置。

\hspace{15pt}小红定义去某个机厅出勤的花费为该机厅到两人家的曼哈顿距离之和,定义第 i 个机厅需要的出勤花费为 c_i。现在小红想要建造一个新的机厅。请对每个 i \in [1, n] 分别计算,有多少个整点坐标 (x, y) 满足:其出勤花费也为 c_i,且 (x, y) 不与两人的家或任何一个已有机厅重合。

【名词解释】
\hspace{15pt}曼哈顿距离:对于平面上的两个点 (x_1, y_1)(x_2, y_2),其曼哈顿距离为 \left|x_1 - x_2 \right| + \left|y_1 - y_2 \right|

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10^5\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 2\times10^5 \right),表示机厅的数量。
\hspace{15pt}第二行输入四个整数 x_a,y_a,x_b,y_b\left(-10^9 \leqq x_a,y_a,x_b,y_b \leqq 10^9\right),表示小红家、小紫家的坐标。
\hspace{15pt}此后 n 行,第 i 行输入两个整数 x_i, y_i \left(-10^9 \leqq x_i, y_i \leqq 10^9 \right),表示第 i 个机厅的坐标。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每组测试数据,新起一行输出 n 个整数,依次代表对于第 1 到第 n 个机厅的答案。
示例1

输入

复制
2
2
0 0 3 1
1 1
1 2
5
-3 2 6 0
0 0
-4 -6
2 -8
3 9
-5 3

输出

复制
5 11
27 48 53 48 33

说明

\hspace{15pt}对于第一组测试数据,第一个机厅的出勤花费为 4,出勤花费为 4 的坐标共八个,两个为小红和小紫的家,一个为该机厅,答案为 5