比赛 20161114 评测结果 AAAAAAAAAA
题目名称 社长的qwa 最终得分 100
用户昵称 AAAAAAAAAA 运行时间 0.018 s
代码语言 C++ 内存使用 0.95 MiB
提交时间 2016-11-14 12:01:57
显示代码纯文本
#include<cstdio>
#include<algorithm>
#define INF (ll)1<<62
typedef long long ll;
namespace IO{
	char buf[1<<15],*fs,*ft;
	inline char gc(){return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin)),fs==ft)?0:*fs++;}
	inline ll qr(){
		ll x=0;
		int f=1;
		char c=gc();
		while(c<'0'||c>'9'){
			if(c=='-'){
				f=-1;}
			c=gc();}
		while(c>='0'&&c<='9'){
			x=(x<<1)+(x<<3)+c-'0';
			c=gc();}
		return f*x;}
}using namespace IO;
using namespace std;
/***********************************************************************************************/
int main(){
	freopen ("qwa.in","r",stdin);
	freopen ("qwa.out","w",stdout);
	int n,k,i;
	ll sum=0,ans=INF,delta=0,a[100010];
	n=qr();
	k=qr();
	for(i=1;i<=n;i++){//不能从0开始 
		a[i]=qr();}
	sort(a+1,a+1+n);
	for(i=1;i<=k;i++){
		sum=sum+(i-1)*a[i]-delta;
		delta=delta+a[i];}
	for(i=k+1;i<=n;i++){
		if(sum<ans){
			ans=sum;}
		/*delta=delta-a[i-k];
		sum=sum-(delta-a[i-k]*(k-1));
		sum=sum+(k-1)*a[i]-delta;
		delta=delta+a[i];*/
		sum=sum-2*delta+(k+1)*a[i-k]+(k-1)*a[i];
		delta=delta-a[i-k]+a[i];}
	if(sum<ans){
		ans=sum;}
	printf("%lld",ans);
	return 0;
}