#CF2122B. 堆的重新排列

堆的重新排列

B. 堆的重新排列
时间限制:1 秒
内存限制:256 兆字节


你被给定 nn 个二进制堆,第 ii 个堆由顶部的 aia_i00 和底部的 bib_i11 组成。

在一次操作中,你可以取任意一个堆的顶部元素,并将其移动到任意一个堆的任意位置(包括它原来所在的堆)。

计算使得第 ii 个堆变为顶部 cic_i00、底部 did_i11 所需的最小操作次数。


输入
每个测试包含多个测试用例。第一行包含测试用例数 tt1t1041 \le t \le 10^4)。
每个测试用例的描述如下:
第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)——堆的数量。
接下来 nn 行,每行包含四个整数 ai,bi,ci,dia_i, b_i, c_i, d_i0ai,bi,ci,di1090 \le a_i, b_i, c_i, d_i \le 10^9)——第 ii 个堆的初始状态和目标状态。

保证存在一系列操作可以将堆变换为目标状态。
保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,输出一个整数——达到目标状态所需的最小操作次数。


样例
输入

3
2
1 3 1 2
1 1 1 2
3
2 0 2 2
0 1 1 0
1 1 0 0
3
1 2 1 2
3 4 3 4
0 0 0 0

输出

2
3
0

说明
第一个测试用例的解在题目描述中给出。
第二个测试用例的最优解如下:
(此处原文未列出具体步骤,但样例输出为 33
第三个测试用例中,所有堆已经处于目标状态。