输入:8 
  1 1 1 0 1 1 1  1(8项,后边数列的8个元素)
        (等值部分 前3个1,后4各1)


输出:
A中长度最大的所有等值数列段的始末位置,如果没有等值数列段,则输出No equal number list.

例:6↵
1 0 1 1 1 0↵

The longest equal number list is from 2 to 4.↵
 
这是我的程序。
#define N 4  
#define M 126  
#include<stdio.h>  
#include<stdlib.h>   
main()   
{   
       int t,k,a[N],b[M];   
       int i=0,x0,x1,x2,x3;   
     for(k=0;k<=3;k++)   
     scanf("%d",&a[k]);   
      for(x3=0;x3<=5;x3++)   
       for(x2=0;x2<=5-x3;x2++)     
         for(x1=0;x1<=5-x3-x2;x1++)   
           for(x0=0;x0<=5-x3-x2-x1;x0++)   
             {   
              b[i]=x0*a[0]+x1*a[1]+x2*a[2]+x3*a[3];                 
              i++;   
             }   
         t=a[3]*5;   
      for(k=1;k<=t;k++)   
        {   
        i=0;while (k!=b[i]&&i<M)i++;   
         if(i==M){t=0;printf("The max is %d.\n",k-1);}   
        }       
system("pause");   
}  

我的程序通不过,”无效内存应用“,怎么办?