View Code of Problem 4059

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,k,d;
	cin>>n>>k;
	vector<int>a;
	set<int>setx;
	for(int i=0;i<n;++i){
		scanf("%d",&d);
		a.push_back(d);
	}
	sort(a.begin(),a.end());
	for(int i=0;i<n-1;++i){
		setx.insert(a[i+1]-a[i]);
	}
	long long ans=0;
	for(auto i:setx){
		for(int m=0;m<a.size()-1;){
			if(k==0)break;
			if(a[m+1]-a[m]==i){
				a.erase(a.begin()+m);
				a.erase(a.begin()+m);
				ans+=i*i;
				k--;
			}
			else
			++m;
		}
		if(k==0)break;
	}
	cout<<ans<<endl;
	return 0;
}

Double click to view unformatted code.


Back to problem 4059