这个解决方案对于Candy I(spoj)有什么问题

时间:2015-03-05 17:37:43

标签: c++

以下是您测试修改的源代码的ideone链接:https://ideone.com/3yDtFb 这是问题的链接:http://www.spoj.com/problems/CANDY/ 尽管传递给定的格式正确的测试用例,它似乎给了我关于spoj的信息,这里是代码。

#include<iostream>
using namespace std;
int main()
{
long long int i,n,each,min;
cin>>n;
while(n!=-1)
{
    long long int a[n],sum=0;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
        sum+=a[i];
    }
    if(sum%n!=0)
        cout<<-1;
    else
    {
        each=sum/n;
        for(i=0;i<n;i++)
        {
            if(a[i]>each)
                min=(a[i]-each);
        }
        cout<<min<<endl;
    }
    cin>>n;
}
return 0;
}

2 个答案:

答案 0 :(得分:1)

即使我有相同的查询。大约半小时后,每次迭代都单击:变量“ sum”和“ min”被传递到下一个测试用例。 因此,请在外部的“ while”范围内对其进行初始化。

答案 1 :(得分:0)

您丢失了min=0min+=cout<<-1<<endl

    min=0;
    each=sum/n;
    for(i=0;i<n;i++)
    {
        if(a[i]>each)
            min+=(a[i]-each);
    }
    cout<<min<<endl;