#CF2018E1. 复杂线段(简单版)

复杂线段(简单版)


E1. 复杂线段(简单版)
每个测试点时间限制:66
每个测试点内存限制:256256 兆字节

Ken Arai - COMPLEX

这是该问题的简单版本。在此版本中,nn 的约束条件与时间限制较低。只有当两个版本都通过时,你才能进行 Hack 操作。

一个(闭)线段集合被称为复杂集合,如果它可以被划分成若干个子集,使得:

  • 所有子集的大小相同;
  • 两条线段相交 当且仅当 它们属于同一个子集。

现在给定 nn 条线段 [l1,r1],[l2,r2],,[ln,rn][l_1, r_1], [l_2, r_2], \dots, [l_n, r_n]
请找出这些线段中,一个复杂子集的最大可能大小。


输入格式

每个测试点包含多个测试用例。
第一行包含一个整数 tt1t1031 \le t \le 10^3),表示测试用例的数量。
接下来每个测试用例的描述如下:

  • 第一行包含一个整数 nn1n21041 \le n \le 2 \cdot 10^4),表示线段的数量。
  • 第二行包含 nn 个整数 l1,l2,,lnl_1, l_2, \dots, l_n1li2n1 \le l_i \le 2n),表示线段的左端点。
  • 第三行包含 nn 个整数 r1,r2,,rnr_1, r_2, \dots, r_nliri2nl_i \le r_i \le 2n),表示线段的右端点。

保证:所有测试用例的 nn 之和不超过 21042 \cdot 10^4


输出格式

对于每个测试用例,输出一个整数:这些线段中一个复杂子集的最大可能大小。


示例

输入:

3
3
1 2 3
5 4 6
5
1 2 3 6 8
5 4 7 9 10
5
3 1 4 1 5
7 2 6 5 10

输出:

3
4
4

示例解释

  • 在第一个测试用例中,所有线段对都相交,因此最优方案是将全部 33 条线段放在一个组里。
  • 在第二个测试用例中,无法将全部 55 条线段构成复杂集合。一个包含 44 条线段的有效划分是:
    {[1,5],[2,4]},{[6,9],[8,10]}\{[1,5], [2,4]\}, \{[6,9], [8,10]\}
  • 在第三个测试用例中,最优方案是只包含除了第 22 条线段以外的所有 44 条线段,将它们放在一个组里。