#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
long int a[1000000],n,i,l[1000000],e[1000000],lon,j;
scanf("%ld",&n);
for(i=1;i<=n;i++)
scanf("%ld",&a[i]);
e[1]=a[1];
l[1]=1;
for(i=2;i<=n;i++)
{
l[i]=0;
for(j=i-1;j>=1;j--)
{
if((a[i]>e[j])&&(l[i]<l[j]))
l[i]=l[j];
}
l[i]=l[i]+1;
e[i]=a[i];
}
lon=l[1];
for(i=2;i<=n;i++)
{
if(lon<l[i])
lon=l[i];
}
printf("%ld",lon);
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
return 0;
}
当我运行此代码时,它会给出分段错误。这个错误是什么? 如果我使用[100000]而不是[1000000]它会给出正确答案。