/ WHOJ / 题库 /

士兵训练(文件IO)

士兵训练(文件IO)

题目描述

有 \(n\) 名士兵进行若干次军事训练,士兵的战斗力各不相同,我们以 \(a_i\) 记录(从 \(1\) 到 \(k\)),\(1\) 级表示战斗力最低,\(k\) 级表示战斗力最高;每次训练,所有士兵都必须参加,但是战斗力相同的多名士兵中只能有 \(1\) 名士兵提高 \(1\) 个等级(已经训练到 \(k\) 等级的士兵就不会提升了),每次训练花费 \(1\) 个单位军费。编程计算,要把所有的士兵战斗力都提升到 \(k\) 等级,至少需要花费多少单位。

格式

输入格式

第一行为正整数 \(t(≤10)\),表示数据组数;每组数据中,第一行为两个正整数 \(n(≤1000)\) 和 \(k(≤100)\),第二行为 \(n\) 个正整数 \(a_i(≤k)\),分别表示每个士兵的初始战斗力。

输出格式

对于每组数据,输出最少的花费。

样例1

输入样例1

2           
4 4     
1 2 2 3
4 3     
1 1 1 1

输出样例1

4
5

样例解释

样例 \(1.1\) 中,\(4\) 次训练的结果是:\(\text{1 2 2 3 → 2 2 3 4 → 2 3 4 4 → 3 4 44 → 4 4 4 4}\)。

来源

地址:芜湖市二十七中电脑班刷题课
作者:汪老师
模拟赛\(T3\)

文件IO

freopen("train.in","r",stdin);
freopen("train.out","w",stdout);