#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int num[1010],dp[1010];
int main ()
{
int n,Max;
while (~scanf("%d",&n))
{
if (n==0)
break;
Max=0;
memset(dp,0,sizeof(dp));
for (int i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
dp[0]=num[0];
for (int i=1;i<n;i++)
{
for (int j=0;j<i;j++)
{
if (num[i]>num[j])
dp[i]=max(dp[i],dp[j]+num[i]);
}
dp[i]=max(dp[i],num[i]);
}
for (int i=0;i<n;i++)
{
Max=max(Max,dp[i]);
}
printf ("%d\n",Max);
}
return 0;
}
hdoj 1087(递推)
最新推荐文章于 2020-01-15 22:03:12 发布