比赛 20161114 评测结果
题目名称 社长的qwa 最终得分 0
用户昵称 Arrow 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2016-11-14 19:19:04
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define INF 100010
using namespace std;
inline int read()
{
	int x=0,f=1;
	char ch=getchar();
	while(!isdigit(ch)){
		if(ch=='-')
			f=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		x=(x<<1)+(x<<3)+ch-'0';
		ch=getchar();
	}
return f*x;
}
/*****************************************************************/
    int a[INF]={0};
	int n,k;
	long long dis[INF]={0},ldis[INF]={0};
int main()
{
	freopen("qwa.in","r",stdin);
	freopen("qwa.out","w",stdout);
	n = read();k = read();
	long long step = 0, min = 0,s=0;
	for(int i = 0; i < n; i++) {
		a[i] = read();
	}
	sort(a,a+n);
	for(int i=1;i<k;i++)
	{
		s+=a[i-1];
		min+=i*(k-i)*(a[i]-a[i-1]);
	}
	s+=a[k-1];s-=a[0];
	step=min;
	for(int i=0;i<n-k;i++)
	{
		step=step-(s-((k-1)*a[i]))+(k-1)*a[i+k]-s;
		s+=a[i+k];s-=a[i+1];
		if(step<min)
			min=step;
	}
	cout<<min<<endl;
	return 0;
}