#CF2141G. 好机器人路径

好机器人路径

G. 好机器人路径

时间限制: 每测试 7.57.5
内存限制: 每测试 512512 兆字节

在一个笛卡尔平面上,有 nn 个不同的点被涂成黑色,而所有其他点被涂成白色。每个黑色点具有整数坐标。

还有一个机器人,通过一条命令可以向任意方向移动一个单位:'U'(上)、'D'(下)、'L'(左)或 'R'(右)。

机器人从点 p1p_1 到点 p2p_2 的一条路径是一个命令序列,使得机器人从点 p1p_1 开始执行该序列后,将到达点 p2p_2

机器人从点 p1p_1 到点 p2p_2最短路径是其命令序列由最少可能数量的命令组成的路径。

你需要统计满足以下条件的点对 (pi,pj)(p_i, p_j)iji \neq j)的数量:

机器人从点 pip_i 到点 pjp_j任意一条最短路径上的所有整数坐标点都被涂成黑色。


输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt (1t104)(1 \leq t \leq 10^4)。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn (1n5105)(1 \leq n \leq 5 \cdot 10^5) — 黑色点的数量。

接下来 nn 行,每行包含两个整数 xi,yix_i, y_i (109xi,yi109)(-10^9 \leq x_i, y_i \leq 10^9) — 点 pip_i 的坐标。所有点两两不同。

保证所有测试用例的 nn 之和不超过 51055 \cdot 10^5


输出格式

对于每个测试用例,输出一个整数 — 问题的答案。


样例

输入

3
5
0 0
1 0
0 1
1 1
2 0
18
0 0
-1 0
-2 0
0 -1
-1 -1
0 1
1 1
0 2
1 2
2 2
1 3
6 -2
5 -2
5 -3
6 -3
4 -3
3 -3
5 -4
3
-100 100
-101 99
-99 101

输出

16
70
0

样例解释

在第一个测试用例中,有 1616 对合适的点:

  • (p1,p2)(p_1, p_2)
  • (p1,p3)(p_1, p_3)
  • (p1,p4)(p_1, p_4)
  • (p1,p5)(p_1, p_5)
  • (p2,p1)(p_2, p_1)
  • (p2,p3)(p_2, p_3)
  • (p2,p4)(p_2, p_4)
  • (p2,p5)(p_2, p_5)
  • (p3,p1)(p_3, p_1)
  • (p3,p2)(p_3, p_2)
  • (p3,p4)(p_3, p_4)
  • (p4,p1)(p_4, p_1)
  • (p4,p2)(p_4, p_2)
  • (p4,p3)(p_4, p_3)
  • (p5,p1)(p_5, p_1)
  • (p5,p2)(p_5, p_2)

注意:(p3,p5)(p_3, p_5) 不是合适的点对,因为从 (0,1)(0, 1)(2,0)(2, 0) 存在一条最短路径经过了白色点 (2,1)(2, 1)(该点不在黑色点集合中)。