#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX 1000
using namespace std;
int main(int argc, char *argv[]) {
int n;
int A[MAX];
int B[MAX];
memset(B,0,MAX);
int temp;
int s;
int i,j;
while(scanf("%d",&n)&&n!=0)
{
s = 0;
for(i = 0; i < n; i++)
{
temp = 0;
scanf("%d",&A[i]);
for(j = i-1; j >= 0; j--)
if(A[i] > A[j]&&B[j] > temp)temp = B[j];//注意for循环作用域!!!!!!害惨了!!!!!!这一步是找最大的那个B[j]
B[i] = temp + A[i];
if(B[i] > s)s=B[i];
}
printf("%d\n",s);
}
return 0;
}
#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX 1000
using namespace std;
int main(int argc, char *argv[]) {
int n;
int A[MAX];
int B[MAX];
memset(B,0,MAX);
int temp;
int s;
int i,j;
while(scanf("%d",&n)&&n!=0)
{
s = 0;
for(i = 0; i < n; i++)
{
temp = 0;
scanf("%d",&A[i]);
for(j = i-1; j >= 0; j--)
if(A[i] > A[j]&&B[j] > temp)temp = B[j];//注意for循环作用域!!!!!!害惨了!!!!!!这一步是找最大的那个B[j]
B[i] = temp + A[i];
if(B[i] > s)s=B[i];
}
printf("%d\n",s);
}
return 0;
}