一道神奇的题。。看到做法是排序我的心是绝望的。。

首先我们可以先求出每个小朋友应该得到的糖果数,就是平均值,然后ave-a[i]就代表要从其他小朋友那得到多少个糖果(如果是负数就是要送出糖果)然后求前缀和,往前面延伸,将值想象成数轴上的点,数轴上任意点到其他的值的点的最小距离和就在中位数。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
int a[],p[];
int main()
{
int n;LL ave=;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
ave+=a[i];
}
ave/=n;
for(int i=;i<=n;i++)p[i]=p[i-]+ave-a[i];
sort(p+,p+n+);
LL ans=;
for(int i=;i<=n;i++)ans+=abs(p[i]-p[(n+)/]);
printf("%lld\n",ans);
return ;
}

最新文章

  1. 学习 git基础命令
  2. windows快捷键集锦
  3. layzr.js新版使用方法
  4. 从scrapy使用经历说开来
  5. LR中Vugen的多进程与多线程(脚本命令行)
  6. javaWeb 使用jsp开发 if else 标签
  7. s2-029 Struts2 标签远程代码执行分析(含POC)
  8. python 入门实践之网页数据抓取
  9. .NET单元测试艺术(3) - 使用桩对象接触依赖
  10. Uncaught TypeError: download is not a function at HTMLAnchorElement.onclick (index.html:25)
  11. [cacti]nginx+php+cacti+mysql+php-fpm 安装小记
  12. Fiddler状态栏
  13. AI 概率图模型
  14. (网络编程)socketserver模块服务端实现并发
  15. mandatory and advisory文件锁(File Lock)
  16. HttpClient上传文件
  17. ERP条码解决方案,金蝶盘点机条码解决方案,应用PDA的信息化管理能给我们的生产管理带来怎么样的变化的探讨
  18. Python之并发编程-IO模型
  19. Java入门:基础算法之求数组元素的和
  20. 【杂题】[LibreOJ 2541] 【PKUWC2018】猎人杀【生成函数】【概率与期望】

热门文章

  1. 如何将表的行数赋值给变量(MySQL)
  2. [luoguP1186] 玛丽卡(spfa)
  3. linux date 格式化时间和日期
  4. SQL SERVER 2012 第四章 连接 JOIN语句的早期语法结构 &amp; 联合UNION
  5. Educational Codeforces Round 37 (Rated for Div. 2) G
  6. ArrayList源码分析超详细(转载)
  7. java 读取数据库数据转化输出XML输出在jsp页面
  8. oracle 用户账户被锁处理
  9. 删除,“windows setup 启用EMS”
  10. HDOJ 5384 Danganronpa AC自己主动机