编辑代码

#include <stdio.h>
#include <string.h>
int max_diff( int *a , int n, int k)
{
    int sum=0;
    //先小到大排序
    for(int i=0; i<n-1; i++)
    {
        for(int j=0; j<n-1-i; j++)
        {
            int tmp;
            if( a[j]>a[j+1] )
            {
                tmp = a[j];
                a[j] = a[j+1];
                a[j+1] = tmp;
            }
        }
    }

    //头尾差值和
    for(int i=0;i<k;i++)
    {
        sum += a[n-1-i] - a[i];
    }

    return sum;
}

int main () {
    int a[100010];
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    
    int k;
    scanf("%d",&k); //k个子集

    printf("%d" , max_diff(a,n,k)); //k个子集差值和最大


}