http://www.codechef.com/OCT14/problems/PRLADDU

这是当前的比赛。
我不想要答案,只是让我知道我的方法是否正确。

我所采用的方法是可交换地添加人员和恐龙,并加总他们(用来再次交换)计算最终答案的步骤。

如果我的方法是正确的,那么哪种情况失败了(我忽略了什么),因为编译器说错了答案?谢谢。

#include<stdio.h>
int main(void)
{
    int t=0,n=0,i=0,dnv=0,grass=0,j=0;
    int d[100000];
    scanf("%d",&t);
    for(i=0; i<t; i++)
    {
        scanf("%d",&n);
        for(j=0;j<n;j++)
        scanf("%d",&d[j]);

        for(j=0; j<n; j++) {
            dnv+=d[j];
            if(dnv>0)
                grass=grass+dnv;
            else
                grass=grass-dnv;
        }
        printf("%d\n",grass);
        grass=dnv=0;
    }

    return 0;
}


尝试此问题的先决条件是什么http://www.codechef.com/OCT14/problems/FATCHEF
谢谢。

最佳答案

我的朋友您的方法是绝对正确的,仅检查您的数据类型以打印答案。
对于任何测试用例,您的答案可能都> 10000000000。检查它,它的开放论坛,所以我不会指出。

09-10 14:38