#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
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]);
}*/
sort(dp,dp+n);
printf ("%d\n",dp[n-1]);
}
return 0;
}
最大递增子序列和
最新推荐文章于 2024-03-01 23:04:32 发布