#A1425. 均衡题目
均衡题目
题目描述
你是“元培杯”的出题人,准备了 个题目,其中第 个题目的难度为 。你将进行以下操作:
- 从列表中删除一些(可能为零)题目;
- 以任意顺序重新排列剩下的题目。
只有当任意两个连续题目的难度之差的绝对值最多为(小于等于)时,题目才被认为是难度均衡的。
你需要删除最少数量的问题,以使题目的难度排列是均衡的。
C++中sort排序函数:sort (first, last)
用法:对容器或普通数组中 [first, last) 范围内的元素进行排序,默认进行升序排序。
例如对数组的前10个元素进行排序:
int a[10] = {2, 4, 1, 23, 5, 76, 0, 43, 24, 65};
for(int i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
sort(a, a + 10);
for(int i = 0; i < 10; i++)
cout << a[i] << " ";
输入格式
第一行包含一个正整数。表示接下来有个测试用例。
每个测试用例的第一行包含两个正整数 和 ,表示题目的数量以及连续题目之间允许的最大差值的绝对值。
每个测试用例的第二行包含个以空格分隔的整数,表示每个问题的难度。
输出格式
对于每个测试用例,输出一个整数,即需要删除的最少题目数量,使得题目的排列是均衡的。
7
5 1
1 2 4 5 6
1 2
10
8 3
17 3 1 20 12 5 17 12
4 2
2 4 6 8
5 3
2 3 19 10 8
3 4
1 10 5
8 1
8 3 1 4 5 10 7 3
2
0
5
0
3
1
4
提示
【样例解释】
对于第一个测试用例,我们可以删除前两个问题,并使用难度为 的问题构建一个集合,其中相邻问题的难度之差等于 和。
对于第二个测试用例,我们可以只取一个问题,并使用难度为 的问题组成一个回合。
依此类推,每个测试用例都可以按照相同的方式解决。
【数据范围】
对于的数据,保证。
对于的数据,保证。
对于的数据,保证。
对于的数据,保证,同时保证每一个测试点中 的总和不超过 。
Related
In following contests: