高级守护
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int a[100],b[200000];
int main() {
int n,k,cnt=0,sum=0;
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
for(int i=1;i<=n;i++){
b[cnt++]=a[i]-a[i-1];
}
sort(b+1,b+1+cnt);
for(int i=1;i<=k+1;i++){
sum+=b[i];
}
cout<<sum;
}
初级天翼
此题比我刚刚回答的你们的作业简单多了
只有一步关键的
code如下:
定义n, m, k, s, a数组, b数组,其中k=0,s=1,a数组和b数组大小自己揣摩
输入n,m和a数组
从小往大sort排序
for循环用b数组计算:b[i] = a[i+1] - a[i];(算是一个简单的递推式了)
再对b数组排序,注意注意,这次的sort是这样的sort(b+1, b+n);也就是说少了一个排序
最后再遍历b数组,k+=b[i]
输出k即可
高级守护
循环(int i=1;i<=n;i++){
输入>>a[i];
}
排序(a+1,a+n+1);
循环(int i=1;i<n;i++){
b[i]=a[i+1]-a[i];
}
排序(b+1,b+n);
循环(int i=1;i<=k;i++){
计数器+=b[i];
}
输出<<计数器;
蔡奕辰在2020-08-27 17:40:12追加了内容
看在同班的情况下,采纳呗
中级天翼
https://wenda.codingtang.com/questions/10025/
希望这个能帮到你,望采纳,谢谢