#CF2003E2. 乌龟与逆序对(困难版)

乌龟与逆序对(困难版)

E2. 乌龟与逆序对(困难版)
每测试点时间限制:22
内存限制:512512 兆字节

这是本题的困难版本。两个版本的区别在于对 mm 的约束以及简单版本中对每个 ii11m1m-1ri<li+1r_i < l_{i+1}。只有同时解决了两个版本,你才能进行 Hack。

乌龟给了你 mm 个区间 [l1,r1],[l2,r2],,[lm,rm][l_1, r_1], [l_2, r_2], \dots, [l_m, r_m]
他认为一个排列 pp有趣的,当且仅当:
对于每个区间 ii 存在一个整数 kik_i(满足 liki<ril_i \le k_i < r_i),并且令

$$a_i = \max_{j = l_i}^{k_i} p_j, \quad b_i = \min_{j = k_i+1}^{r_i} p_j $$

对于每个 i=1,2,,mi = 1, 2, \dots, m,下面的条件成立:

maxi=1mai  <  mini=1mbi\max_{i=1}^m a_i \;<\; \min_{i=1}^m b_i

乌龟希望你在所有长度为 nn 的有趣排列中,计算逆序对的最大个数,如果不存在有趣的排列,则输出 1-1

逆序对的定义:在排列 pp 中,一对 (i,j)(i, j)1i<jn1 \le i < j \le n)满足 pi>pjp_i > p_j 称为一个逆序对。


输入格式
每个测试点包含多个测试用例。第一行包含整数 tt1t1031 \le t \le 10^3),表示测试用例的数量。
每个测试用例的第一行包含两个整数 n,mn, m2n51032 \le n \le 5 \cdot 10^30m51030 \le m \le 5 \cdot 10^3),分别表示排列长度和区间个数。
接下来 mm 行,第 ii 行包含两个整数 li,ril_i, r_i1li<rin1 \le l_i < r_i \le n),表示第 ii 个区间。注意可能存在相同的区间(即可能存在两个不同的下标 i,ji, j 使得 li=ljl_i = l_jri=rjr_i = r_j)。

所有测试用例的 nn 之和不超过 51035 \cdot 10^3mm 之和也不超过 51035 \cdot 10^3


输出格式
对于每个测试用例,如果没有有趣的排列,输出一行一个整数 1-1
否则输出一行一个整数,表示最大的逆序对数。


样例输入

8
2 0
2 1
1 2
5 1
2 4
8 3
1 4
2 5
7 8
7 2
1 4
4 7
7 3
1 2
1 7
3 7
7 4
1 3
4 7
1 3
4 7
7 3
1 2
3 4
5 6

样例输出

1
0
8
18
-1
-1
15
15

样例解释
第三个测试用例中,逆序对数最大的有趣排列是 [5,2,4,3,1][5,2,4,3,1]

第四个测试用例中,逆序对数最大的有趣排列是 [4,3,8,7,6,2,1,5][4,3,8,7,6,2,1,5]。此时我们可以取 [k1,k2,k3]=[2,2,7][k_1, k_2, k_3] = [2,2,7]

第五个和第六个测试用例中,可以证明不存在有趣的排列。

第七个测试用例中,逆序对数最大的有趣排列是 [4,7,6,3,2,1,5][4,7,6,3,2,1,5]。此时我们可以取 [k1,k2,k3,k4]=[1,6,1,6][k_1, k_2, k_3, k_4] = [1,6,1,6]

第八个测试用例中,逆序对数最大的有趣排列是 [4,7,3,6,2,5,1][4,7,3,6,2,5,1]