地址:https://codeforces.com/contest/1175/problem/D
思路:思维题,计算其后缀和a[i],对于划分为第x-1组和第x组,在计算第x-1组时,相当于将第x组也计算了一遍,因此只要取a[1]和a[2->n]中的前k-1大值即可
Code:
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
const int MAX_N=3e5+5;
int n,m;
LL a[MAX_N];
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1;i<=n;++i)
cin>>a[i];
for(int i=n-1;i>=1;--i)
a[i]+=a[i+1];
sort(a+2,a+n+1);
LL ans=a[1];
for(int i=1;i<=m-1;++i)
ans+=a[n-i+1];
cout<<ans<<endl;
return 0;
}