Educational Codeforces Round 66 (Rated for Div. 2)-D. Array Splitting

Educational Codeforces Round 66 (Rated for Div. 2)-D. Array Splitting_第1张图片

地址:https://codeforces.com/contest/1175/problem/D

思路:思维题,计算其后缀和a[i],对于划分为第x-1组和第x组,在计算第x-1组时,相当于将第x组也计算了一遍,因此只要取a[1]和a[2->n]中的前k-1大值即可

Code:

#include
#include
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<

 

你可能感兴趣的:(Codeforces,思维)