有 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)
输出
所有堆均达到相等时的最少移动次数。
样例输入
4
9 8 17 6
样例输出
3

#include<iostream>
//贪心模拟

using namespace std; int N,G,S,A,P,CAD[1000]; {
cin>>N;
for(int i=1;i<=N;++i)
{
cin>>CAD[i];
S+=CAD[i];
}
A=S/N; for(int i=1;i<N;++i)
{
G=A-CAD[i];
if(G!=0)
{
P++;
CAD[i+1]-=G;
CAD[i]+=G;
}
} cout<<P;
return 0;
}

最新文章

  1. 显示或隐藏div
  2. Xamarin.Android中使用ResideMenu实现侧滑菜单
  3. 编解码-java序列化
  4. dbutils中实现数据的增删改查的方法,反射常用的方法,绝对路径的写法(杂记)
  5. django上传文件
  6. iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework
  7. UIImage 调整图片大小
  8. ci 基础知识
  9. iOS应用架构浅谈
  10. EditText 双击才能获取点击事件
  11. BZOJ 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐( LIS )
  12. 慎用MonthsBetweent和MonthSpan
  13. linux查看CPU和内存信息
  14. js url编码函数
  15. FIR滤波器的实现方法(转)
  16. eclipse版本选择
  17. 玩一玩基于Token的 自定义身份认证+权限管理
  18. java记事本开发
  19. Docker数据卷Volume实现文件共享、数据迁移备份(三)--技术流ken
  20. Vue编写的todolist小例子

热门文章

  1. 优化多if和else语句
  2. 题解 UVA10859 【Placing Lampposts】
  3. Win10打开Autodesk软件时提示“管理员已阻止你运行此应用”
  4. JAVA集合框架特征介绍
  5. [转]C#的反射
  6. raise EOFError(&quot;Compressed file ended before the &quot; EOFError: Compressed file ended before the end-of-stream marker was reached
  7. 解决adb devices无法连接各种模拟器
  8. 第三周day1
  9. @Component类相互引用的加载顺序
  10. 从零搭建hadoop集群之安装虚拟机