View Code
1 //杭电1087 2 /* 3 3 1 3 2 4 4 1 2 3 4 5 4 3 3 2 1 6 0 7 8 9 4 10 10 11 3 12 */ 13 #include<stdio.h> 14 #include<string.h> 15 16 int main() 17 { 18 int n,a[1010],b[1010],i,j,k,max1,max2; 19 while(scanf("%d",&n),n!=0) 20 { 21 memset(a,0,sizeof(a));//将其清零 22 memset(b,0,sizeof(b)); 23 for(i=1;i<=n;i++) 24 { 25 scanf("%d",&a[i]); 26 b[i]=a[i]; 27 } 28 29 for(i=1;i<=n;i++) 30 { 31 k=0; 32 max1=-10000000;//最大值有可能是负数,故其最大值置为一个尽可能小的负数 33 for(j=0;j<i;j++) 34 35 if(a[i]>a[j]) 36 { 37 if(max1<b[j]) 38 { 39 max1=b[j]; 40 k=j; 41 } 42 } 43 44 b[i]+=b[k]; 45 46 47 } 48 max2=-1000000; 49 for(i=0;i<=n;i++) 50 { 51 if(max2<b[i]) 52 max2=b[i]; 53 } 54 printf("%d\n",max2); 55 } 56 return 0; 57 }
找出连续数列和最大值