为啥我c语言 程序 本地可以 传到oj 就出现了运行错误

 #include<stdio.h>
 int main()
 {
 long n,k;
scanf("%ld%ld",&n,&k);
long a[1100];
long long sum;
 for(int i=1;i<=n;i++)
 {
scanf("%ld",&a[i]);
 }
for(int i=1;i<=k;i++)
{
    int l,r;
    l=0;r=0;
scanf("%d%d",&l,&r);
sum=0;
 while(l<=r)
  {
while(a[l]==0)    
{
    l=l+1;
    if(l>r)
break;
}
if(l>r)
break;
sum=sum+a[l];    
l=l+1;    
    }    
printf("%lld\n",sum);        
}
     return 0;
  } 

1.你需要贴出运行报错信息。
2.发现程序中重量数组a[1100],输入超过1100个数时发生访问越界的问题,会产生段错误。应根据输入竹鼠数量n申请内存。