//最大子串和 #include<stdio.h> #include<stdlib.h> int main() { int *a,*b; a=(int *)malloc(sizeof(int)*1000000); b=(int *)malloc(sizeof(int)*1000000); int n; int i; int max; while(scanf("%d",&n)!=EOF&&n!=0) { for(i=0;i<n;i++) scanf("%d",&a[i]); b[0]=a[0]; max=b[0]; for(i=1;i<n;i++) { if(b[i-1]<0) b[i]=a[i]; else b[i]=b[i-1]+a[i]; if(b[i]>max) max=b[i]; } printf("%d\n",max); } return 0; } |
Double click to view unformatted code.