Problem - 1087 http://acm.hdu.edu.cn/showproblem.php?pid=1087
/*************************** # 2013-9-13 13:44:52 # Time: 15MS Memory: 236K # Author: zyh # Status: Accepted ***************************/ #include<stdio.h> #include<string.h> struct point{ int v,s; }a[1005]; int main() { int n,i,j,sum,Max; while(~scanf("%d",&n),n) { for(Max=0,i=0;i<n;i++){ scanf("%d",&a[i].v); for(sum=a[i].v,j=i-1;j>=0;j--){ if(a[i].v>a[j].v && sum<a[j].s + a[i].v){ sum = a[j].s + a[i].v; } } a[i].s = sum; if(Max<sum) Max = sum; } printf("%d\n",Max); } return 0; }