P1031 均分纸牌

题目描述

有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。

移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。

现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。

例如 N=4,4 堆纸牌数分别为:

①9②8③17④6

移动3次可达到目的:

从 ③ 取 4 张牌放到 ④ (9 8 13 10) -> 从 ③ 取 3 张牌放到 ②(9 11 10 10)-> 从 ② 取 1 张牌放到①(10 10 10 10)。

输入输出格式

输入格式:

键盘输入文件名。文件格式:

N(N 堆纸牌,1 <= N <= 100)

A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l<= Ai <=10000)

输出格式:

输出至屏幕。格式为:

所有堆均达到相等时的最少移动次数。

输入输出样例

输入样例#1:

4
9 8 17 6
输出样例#1:

3
/*
先算平均数(目标纸牌数),然后固定其中的一头(1和N都可以),从一个方向移动牌,拿走和拿来都算是一次
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
int n;
cin>>n;
int s=;
int a[];
memset(a,,sizeof(a));
for (int i=;i<=n;i++){
cin>>a[i];
s+=a[i];
}
s=s/n;
for (int i=;i<=n;i++)a[i]-=s;
s=;
int x=;
for (int i=;i<n;i++){
a[i]=a[i]+x;
if (a[i]==) {x=;continue;}
if (a[i]<) {x=a[i];a[i]=;s++;}
if (a[i]>) {x=a[i];a[i]=;s++;}
}
cout<<s;
return ;
}

最新文章

  1. Zookeeper异常ConnectionLossException解决
  2. mysql中更新或者删除语句中子语句不能操作同一个表You can&#39;t specify target table &#39;test&#39; for update in FROM clause
  3. TestNG 三 测试方法
  4. PHPstorm设置连接FTP,进行文件上传、下载、比较
  5. CSharp 调用存储过程来执行增、删、改操作
  6. 开发高峰时的CPU使用率
  7. AFNetworking 2.0 来了
  8. UML include、generalization、extend、association
  9. CF Rook, Bishop and King
  10. SAP-Basic:使用SCC1时提示 TA263&ldquo;集团被集团副本锁定用于输入&rdquo;
  11. CSS强制图片大小
  12. Objective-C马路成魔【12-分类和协议】
  13. linux监控命令全覆盖(图文说明)
  14. Json序列化、反序列化
  15. MIUI12系统怎么样开启Root超级权限的流程
  16. J - Network of Schools
  17. org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#39;stu&#39; defined in class path resource [applicationContext.xml]: Instantiation of bean failed; nested exception is
  18. python - str和repr方法:
  19. 【转】Java设计模式之《享元模式》及应用场景
  20. push(),pop(),unshift(),shift()

热门文章

  1. SQL Server分区表,能否按照多个列作为分区函数的分区依据(转载)
  2. Eureka 集群
  3. React Native 微信分享闪退的解决办法
  4. 大数据之路- Hadoop环境搭建(Linux)
  5. BZOJ 3043 IncDec Sequence:反向差分
  6. listen 80
  7. 洛谷P3252 [JLOI2012]树
  8. 洛谷 P3804 [模板] 后缀自动机
  9. Mysql 创建存储过程 更新表
  10. Visual Studio 编译后去掉只读属性