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