第19461题
完善将升序序列分为k段使各段价值之和最小的C++程序,补全代码中的空缺位置

完善程序:给定一个长度为n且从小到大排好序的序列{a₁,a₂,a₃,...,aₙ},要把这个序列分成 k 段,每段的价值为该段中的最大值减去最小值,现在请你帮忙分段,使得各分段的价值之和最小(保证计算结果都在int范围内)。

#include <bits/stdc++.h>
using namespace std;
const int N=3e5+5;
int n,k,sum,a[N],b[N];
int main(){
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    for(int i=1;i<n;i++) b[i]=
      ①   ;
        if(    ②   )
            printf("0\n");
        else if(k==1)
            ③
        else
    {
        sort(b+1,b+n);
        sum=0;
        for(int i=1;i<=       ④   ;i++)
            printf("%d\n",sum);
        }
    return 0;
}
  1. 第①空应填写?
  2. 第②空应填写?
  3. 第③空应填写?
  4. 第④空应填写?
  5. 第⑤空应填写?
提交0次 正确率0.00%
答案解析