我覺得這個題最難的部分應該是理解題意唉地。
理解了其實很簡單,一個數(shù)組先判斷他的和是不是0;
如果不是零凉唐,直接輸出整個數(shù)組就可以了盅藻;
如果是0,判斷它是全為零群嗤,還是有非零元素菠隆;
全為零肯定不行輸出NO;
不全為零就找到數(shù)組的第一個不為零的數(shù)骚烧,然后將它和它之前的數(shù)劃為一個子數(shù)列浸赫,之后的劃為另一個子數(shù)列;
代碼如下:
#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);
}
}
}```