CF2018E2 Complex Segments (Hard Version)
Description
[Ken Arai - COMPLEX](https://soundcloud.com/diatomichail2/complex)
⠀
This is the hard version of the problem. In this version, the constraints on $ n $ and the time limit are higher. You can make hacks only if both versions of the problem are solved.
A set of (closed) segments is complex if it can be partitioned into some subsets such that
- all the subsets have the same size; and
- a pair of segments intersects if and only if the two segments are in the same subset.
You are given $ n $ segments $ [l_1, r_1], [l_2, r_2], \ldots, [l_n, r_n] $ . Find the maximum size of a complex subset of these segments.
Input Format
Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 10^3 $ ). The description of the test cases follows.
The first line of each test case contains a single integer $ n $ ( $ 1 \le n \le 3 \cdot 10^5 $ ) — the number of segments.
The second line of each test case contains $ n $ integers $ l_1, l_2, \ldots, l_n $ ( $ 1 \le l_i \le 2n $ ) — the left endpoints of the segments.
The third line of each test case contains $ n $ integers $ r_1, r_2, \ldots, r_n $ ( $ l_i \leq r_i \le 2n $ ) — the right endpoints of the segments.
It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 3 \cdot 10^5 $ .
Output Format
For each test case, output a single integer: the maximum size of a complex subset of the given segments.
Explanation/Hint
In the first test case, all pairs of segments intersect, therefore it is optimal to form a single group containing all of the three segments.
In the second test case, there is no valid partition for all of the five segments. A valid partition with four segments is the following: $ \{\{ [1, 5], [2, 4] \}, \{ [6, 9], [8, 10] \}\} $ .
In the third test case, it is optimal to make a single group containing all the segments except the second.