| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 246 人关注过本帖
标题:帮忙看一看,还是wa,郁闷了
只看楼主 加入收藏
枫叶无痕
Rank: 2
等 级:论坛游民
帖 子:80
专家分:30
注 册:2011-2-10
结帖率:73.91%
收藏
 问题点数:0 回复次数:0 
帮忙看一看,还是wa,郁闷了
均分纸牌

Time Limit:1000MS  Memory Limit:65536K
Total Submit:266 Accepted:113

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

有多个测试案例,每个测试案例
第1行输入N(N 堆纸牌,1 <= N <= 100)
第2行输入A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l<= Ai <=10000)
如果输入N=0,则表示结束

Output

对每个测试案例,输出一行,内容为使所有堆均达到相等时的最少移动次数。

Sample Input


4
9 8 17 6
0
Sample Output


3
Source

NOIP2002tg



#include<stdio.h>
main()
{
    int n;
    int sum,ave,i,j,k;
    int z,str[101];
    while(scanf("%d",&n)!=0)
    {
        if(n==0)
        break;
        else
        {
            sum=0;z=0;
        for(i=1;i<=n;i++)
        {
            scanf("%d",&str[i]);
            sum=sum+str[i];
        }
        ave=sum/n;
        if(ave*n==sum)
        {
            for(i=1;i<=n;i++)
            {
                if(str[i]>ave)
                {
                    for(j=i-1;j>0;j--)
                    {
                        str[j]=str[j]+str[j+1]-ave;
                        z++;
                        str[j+1]=ave;
                        if(str[j]<=ave)
                        break;
                    }
                    if(str[1]>ave)
                    {
                        str[i]=str[1];
                        str[1]=ave;
                        for(k=i+1;k<=n;k++)
                        {
                            str[k]=str[k]+str[k-1]-ave;
                            z++;
                            str[k-1]=ave;
                            if(str[k]<=ave)
                            break;
                        }
                    }
                }
            }
            printf("%d\n",z);
        }
        }
    }
}



帮忙调试一下,也是不能通过!郁闷了
搜索更多相关主题的帖子: Memory 
2011-05-08 21:11
快速回复:帮忙看一看,还是wa,郁闷了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019540 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved