122. 糖果传递【均分纸牌问题】

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
typedef long long int LL;
LL a[N],s[N],c[N],n;
int main(void)
{
    
    
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i],s[i]=s[i-1]+a[i];
    LL avg=s[n]/n;
    for(int i=1;i<=n;i++) c[i]=avg*i-s[i];
    sort(c+1,c+n+1);
    LL temp=c[(n+1)/2];
    LL ans=0;
    for(int i=1;i<=n;i++) ans+=labs(temp-c[i]);
    cout<<ans;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_46527915/article/details/123700951
今日推荐