比赛 |
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;
}