美文网首页
A - Lesha and array splitting

A - Lesha and array splitting

作者: 陌路晨曦 | 来源:发表于2017-01-16 00:07 被阅读0次

    我觉得这个题最难的部分应该是理解题意。
    理解了其实很简单,一个数组先判断他的和是不是0;
    如果不是零,直接输出整个数组就可以了;
    如果是0,判断它是全为零,还是有非零元素;
    全为零肯定不行输出NO;
    不全为零就找到数组的第一个不为零的数,然后将它和它之前的数划为一个子数列,之后的划为另一个子数列;

    代码如下:

    #include<stdio.h>
    #include<string.h>
    int a[105];
     int main()
     {
        int n;
        while(~scanf("%d",&n))
        {
            memset(a,0,sizeof(a));
            int flag=0,sum=0;
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&a[i]);
                sum+=a[i];
                if(a[i]!=0&&flag==0)
                {
                    flag=i;
                 }
             }
             if(flag==0)
             {
                printf("NO\n");
                continue;
             }
             if(sum!=0)
             {
                printf("YES\n1\n");
                printf("1 %d\n",n);
             }
             else
             {
                printf("YES\n2\n");
                printf("1 %d\n",flag);
                printf("%d %d\n",flag+1,n);
             }
        }
     }```

    相关文章

      网友评论

          本文标题:A - Lesha and array splitting

          本文链接:https://www.haomeiwen.com/subject/fspubttx.html