问题标题: 酷町堂:1085

0
0

0
已采纳
邹昊轩
邹昊轩
资深光能
资深光能

二话不说,上代码

    //定义
    输入
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    排序a数组
    for(int i=1;i<n;i++){
        b[cnt++]=a[i]-a[i-1];
    }
    排序b数组(b+1,b+1+cnt)
    for(int i=0;i<k;i++){
        sum+=b[i];
    }
    输出<<sum;

0
王子健
王子健
初级天翼
初级天翼

此题比我刚刚回答的你们的作业简单多了

只有一步关键的

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即可

 

 

我要回答