题目:Problem - A - Codeforces
总结:
对原数组进行初始化后,进行排序,求和并减去最大的几个后输出。
代码献上:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int a[100010], b[100010];
int main()
{
int T; cin >> T; //多组样例输入
while (T--)
{
int n, k, num = 0;
cin >> n >> k;
for (int i = 1; i <= n; i++) cin >> a[i]; //样例输入
for (int i = 2; i <= n; i++)
{
b[i] = abs(a[i] - a[i - 1]); //初始化
num += b[i]; //求和
}
sort(b + 2, b + n + 1); //除第一个元素其余都进行排序
for (int i = 1; i < k; i++)
{
num = num - b[n--]; //将后边最大的元素从总数中减除
}
cout << num << endl; //输出
}
return 0;
}