Description
你需要收集有关机器人在种植区域工作的统计信息。如果存在一个机器人恰好在网格段 (x1,x2,y) 上工作,我们说 (x1,x2) 在行 y 上被服务。具体地,你需要:
- 找出所有在某一行中被服务的 (x1,x2) 对。
- 对于每一对这样的 (x1,x2),找出它被服务的行数。
- 对于每一对这样的 (x1,x2),找出它被服务的最大连续行数。换句话说,找出最大值 k,使得存在一个长度为 k 的连续行区间 [y1,y2](其中 y2−y1+1=k),使得在任意行 y1≤y≤y2 中,该对 (x1,x2) 都被服务。
输入包含多组数据。第一行给出一个整数 t(1≤t≤200000),表示测试数据的组数。
每组数据的第一行给出一个整数 n(1≤n≤200000),表示矩形区域的数量。
接下来的 n 行中,每行包含四个整数 xLi,yLi,xRi,yRi(1≤xLi≤xRi≤109,1≤yLi≤yRi≤109),表示一个矩形区域。
令 N 表示所有数据集中的 n 总和,保证 N≤200000。
对于每组数据,首先输出一个整数 p(p≥1),表示在某一行中被服务的 (x1,x2) 对的数量。接下来 p 行中,每行输出四个整数 x1,x2,cnt,k(1≤x1≤x2≤109,0≤cnt,k≤109)。其中,cnt 是该对 (x1,x2) 被服务的行数,k 是它被服务的最大连续行数。
每一对 (x1,x2) 必须是不同的。每一对在某一行中被服务的 (x1,x2) 对,必须输出且只能输出一次。输出顺序可以是任意的。
4
2
2 2 3 3
3 3 4 4
2
2 1 2 3
1 2 3 2
4
2 2 4 5
3 4 9 7
2 9 9 10
7 1 9 7
7
2 1 2 9
5 1 6 8
4 5 7 6
1 8 4 10
1 6 3 6
1 2 7 3
4 1 7 1
3
2 3 1 1
2 4 1 1
3 4 1 1
2
1 3 1 1
2 2 2 1
4
2 4 2 2
2 9 4 2
3 9 2 2
7 9 3 3
6
1 4 2 2
1 6 1 1
1 7 3 2
2 2 4 2
4 7 2 1
5 6 2 1
Hint

在第一组数据中,机器人在以下区段进行服务:(2,3,2),(2,4,3) 和 (3,4,4)。因此,对 (2,3),(2,4) 和 (3,4) 在某一行中得到服务,并且每对都只在一行中被服务。
在第二组数据中,机器人在以下区段进行服务:(2,2,1),(2,4,2) 和 (2,2,3)。因此,对 (2,2) 和 (2,4) 在某一行中得到服务。对 (2,2) 在第 1 行和第 3 行中得到服务,而对 (2,4) 在第 2 行中被服务。
下面是第三和第四组数据的图片。

- 如果你的程序错误地找出了在某一行中被服务的对 (x1,x2) 的集合,该测试点将获得零分。
- 如果你的程序:
- 能够正确找出该集合,但不是所有的 cnt 都正确,该测试点将获得 50% 的分数。
- 能够正确找出该集合和所有 cnt,但不是所有的 k 都正确,该测试点将获得 75% 的分数。
- 能够正确找出该集合、所有 cnt 和所有 k,该测试点将获得 100% 的分数。
请注意,如果你想获得获得部分分,仍需为每对配对 (x1,x2) 输出一些 cnt 和 k 值,但不必全部正确。