K. rain(hard version)

传统 1000 ms 1024 MiB
标准 IO
文本比较

题目描述

简单版将由新手组的选手解决,简单版困难版的唯一区别在于对 kk 的约束不同。

下雨了!

上帝管理了 10910^9 个城市,这些城市的编号从 1110910^9,并按从左到右的顺序分布在一条直线上。一共有 nn 个降雨安排,每个安排表示为 l,rl,r,代表编号在 llrr 之间的所有城市发生了一次降雨。

如果一个城市在短时间内降雨次数超过 kk 次,就会引发洪水。作为上帝,并不希望发生洪水,因此上帝想知道在任何一个城市的降雨次数都不超过 kk 次的情况下,所有城市的降雨次数之和的最大值是多少。

输入格式

第一行,一个整数 t(1t200)t(1\le t \le 200),代表数据组数。

对于每组数据:
第一行,两个整数 n,k(1kn200)n,k(1\le k\le n\le 200),代表降雨安排的个数和一个城市降雨次数上限。
接下来连续的 nn 行,每行两个整数 l,r(1lr109)l,r(1\le l\le r\le 10^9),代表一次降雨安排。

保证在同一测试点内的 nn 的总和不超过 200200

输出格式

对于每组数据,输出一行整数代表所有城市的降雨次数和的最大值是多少。

样例

输入样例

5
5 2
1 3
2 6
1 9
4 5
5 10
5 1
1 10
1 9
3 6
2 7
5 7
1 1
1 1000000000
7 5
1 8
2 15
3 4
2 3
6 10
2 6
8 11
7 3
1 8
2 15
3 4
2 3
6 10
2 6
8 11

输出样例

18
10
1000000000
40
31

提示
在样例的第 11 组数据中,选择降雨安排 [1,3][1,3][1,9][1,9][5,10][5,10]