codechef c代码中的错误答案(codechef-STATUES)

时间:2013-12-18 19:36:28

标签: c algorithm

我正在尝试解决这个问题,但是在codechef上它显示错误的答案,链接到queston是http://www.codechef.com/problems/STATUES/。在系统上,它显示正确答案,经过多次尝试后,我找不到该错误我的代码是,

#include<stdio.h>
//#include<conio.h>

int main()
{
    int a[150];
    int n;
    int i;
    int sum;
    int avg;
    int count=0;
    scanf("%d",&n);
    int ans;
    int diff;
    while(n!=0)
    {

    sum=0;
    ans=0;
    count++;
    for(i=0;i<n;i++)
    {   scanf("%d",&a[i]);
        sum=sum+a[i];
    }

    avg=sum/n;

    for(i=0;i<n;i++)
    {   diff=avg-a[i];
        if(diff>0)
        ans=ans+diff;
    }
    printf("Set#%d\nThe minimum number of moves is %d.\n",count,ans);
    scanf("%d",&n);

    }
    return 0;
}

1 个答案:

答案 0 :(得分:2)

阅读问题中的条件:

  

在每个测试用例后输出一个空行。   请注意上述字符串中的大小写和标点符号。严格遵守输出格式将导致错误的答案判决。

每次输出后没有空白行。还需要一个for循环来满足精确输出格式的条件。在while之后添加此代码段。

  for(i=0;i<n;i++)
  {
       printf("\nSet #%d\nThe minimum number of moves is %d.\n",i,ans); 
  }

另一个问题是

int a[150];  

a不应超过50。将其更改为

int a[50];  

但我建议你在这种情况下使用variable length array来节省内存。