WIKIOI-1098 均分纸牌

题目描述 Description
有 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)。

输入描述 Input Description
第一行N(N 堆纸牌,1 <= N <= 100)
第二行A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l<= Ai <=10000)

输出描述 Output Description
输出至屏幕。格式为:
所有堆均达到相等时的最少移动次数。‘

样例输入 Sample Input
4
9 8 17 6

样例输出 Sample Output
3

 

 

#include<stdio.h>
#include<string.h>
int a[200];
int main()
{
    int i,j,n,sum,arg;
    scanf("%d",&n);
    sum=0;
    for(i=0;i<n;i++)
    {
       scanf("%d",&a[i]);
       sum+=a[i];
    }
    arg=sum/n;j=0;
    for(i=0;i<n-1;i++)
    {
       if(a[i]!=arg)
       {
          a[i+1]+=a[i]-arg;
          j++;
       }
    }
    printf("%d\n",j);
    return 0;
}

 

时间: 2024-11-05 22:01:57

WIKIOI-1098 均分纸牌的相关文章

JavaScript实例教程:javascript制作纸牌游戏

文章简介:这几天忙着做了一个JavaScript的纸牌.与Windows的纸牌相似 好几天没有更新自己的博客了,这段时间,作业比较多,试验报告比较多,老师要写纸质试验报告,还要电子档,考试不按照她上课讲的思路那就得不到几分...她这观点一出来,我就傻了,不能有自己的见解了... 废话就到这里,小小抱怨一下,o(∩_∩)o下面进入正题,这几天忙着做了一个JavaScript的纸牌.与Windows的纸牌相似 规则如下: 1.有3个叠牌区域和4种牌,左上角叠牌区,右上角整理区,和中间的层叠区. 2.

Win8无纸牌扫雷自带游戏如何解决

安装了windows 8的用户会发现Windows系统中均自带的纸牌以及扫雷等小游戏在windows8 中找不到. 这是因为自Windows 3.1开始,扫雷游戏就是系统默认自带的游戏,但是windows8则不预装扫雷,纸牌等小游戏了. 安装方法: 在Windows8下去的windows store中下载免费的微软官方扫雷以及纸牌等小游戏.            

Win7桌面多窗口快速均分平铺

有时候我们打开一个文档进行编辑,然后又打开一个网页进行浏览,如果需要对比网页内容与文档内容的话,将两个窗口在桌面上平铺就能很好地来观察.在Windows 7中我们可以轻松快速地玩转多窗口快速均分平铺,用鼠标或者键盘都可以实现. 方法一:鼠标拖动 将打开的一个Word文档窗口,将鼠标放到窗口上部空白处,将其拖放到桌面屏幕的左边,它会自动占据半个桌面屏幕,同样将鼠标放到打开的网页窗口上部空白处,将其拖放到桌面屏幕的右边,它会自动占据半个屏幕,两个窗口就这样轻松地占据着屏幕的一左一右,非常方便. 方法

Windows8无纸牌自带游戏如何解决

  故障现象: Windows系统中均自带的纸牌游戏在windows8 中找不到 原因分析: 微软windows8中不预装微软的纸牌游戏 解决方案: 指导用户在微软应用商店中下载免费的官方纸牌游戏

纸牌问题-求助~~c++程序题,在线等,如回答有用愿支付宝转账10块,拜托拜托

问题描述 求助~~c++程序题,在线等,如回答有用愿支付宝转账10块,拜托拜托 若一个人盒子中放有16张纸牌,其中有3张是红心,3张是草花,6张是方块,4张是黑桃,问从中任取8个共有多少种不同颜色的搭配? 解决方案 http://zhidao.baidu.com/link?url=FlIF9-lt-62bIDmAQuR4WFz7fG8qK-LlaJrLcpMuHQ_3SptH-QlQ4MmTTv6tBdViBK3cqZkkk-vHBT1cF6qyHK 解决方案二: 这是数学题吧...... 解决

tab-Tab标签底部显示,weight均分

问题描述 Tab标签底部显示,weight均分 我的bottom应该是在手机屏幕下面显示的,但是在我使用weight后并没有出现我想要的效果,而我在eclipse中同样的一段代码是可以的,在androidstudio却一直没有显示出来.求告知我该如何处理这个小问题. 解决方案 http://blog.csdn.net/wwj_748/article/details/44224945 解决方案二: 其中一种解决方法就是整个界面布局采用相对布局,然后把你目前的LinerLayout放入相对布局里,并

数据-蜘蛛纸牌对于点数相邻的两张牌,你可以将点数小的牌移动到点数大的上面,显示可行的操作。

问题描述 蜘蛛纸牌对于点数相邻的两张牌,你可以将点数小的牌移动到点数大的上面,显示可行的操作. 输入数据有多组,每组10个整数,代表最上面那张牌的分值,每个整数取值是1~13,分别对应A.2.3.4.5.6.7.8.9.10.J.Q.K这些牌面分值. 对于每组数据均输出一行,如果还有可行的操作,请输出YES,否则输出NO. 解决方案 Q/K/J/5/8/7/3/9/6/2/1/4

c语言-求蜘蛛纸牌c程序源码!!!

问题描述 求蜘蛛纸牌c程序源码!!! 求电脑游戏蜘蛛纸牌c程序源码,急急急! 各位大神,帮帮忙!!! 解决方案 http://www.codeforge.cn/read/120284/SpiderView.cpp__html 解决方案二: 带不带界面呢.可视化?

妹纸求助-vb纸牌游戏,如何洗牌?

问题描述 vb纸牌游戏,如何洗牌? 在vb中,如何将扑克牌洗牌,就是将代码和图片结合起来,现在我能做出来一个取随机数的代码,也能显示图片,但是结合不上 解决方案 产生一个1~54的随机数,这个会不会? 然后对这个数字整除4得到大小(1=A 10=J 11=Q 12=K)mod 4得到花色 根据大小花色,绘制牌面. 当然还有个做法,直接把牌放在一个ImageList里面,下标正好1-54 解决方案二: 把纸牌放list中作为牌库,需要发自牌时使用随机数生成牌库中任意一个牌的序号,发牌后就将其移出牌