#include<map>
#include<set>
#include<list>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long longusing namespace std;const int N=;
int n,a[N],dp[N];
int main()
{
while(cin>>n,n){
memset(dp,,sizeof(dp));
for(int i=;i<n;i++)cin>>a[i];
int ans=;
for(int i=;i<n;i++)
{
dp[i]=a[i];
for(int j=;j<i;j++)
{
if(a[i]>a[j])dp[i]=max(dp[i],dp[j]+a[i]);
if(dp[i]>ans)ans=dp[i];
}
}
// for(int i=0;i<n;i++)cout<<dp[i]<<endl;
cout<<ans<<endl;
}
return ;
}
https://vjudge.net/contest/68966#problem/E
dp【i】=a【i】这一步一定不能忘了!!