此题就是把不降子序列最长改为和最大
代码:
#include<stdio.h>
#include<string.h>
int main()
{
int num[1001],sum[1001];
int i,j,k;
int max;
int n;
while(scanf("%d",&n)!=EOF && n!=0)
{
memset(num,0,sizeof(num));
memset(sum,0,sizeof(sum));
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
max=0;
for(i=0;i<n;i++)
{
sum[i]=num[i];
for(j=0;j<i;j++)
{
if(num[i]>num[j] && sum[i]<num[i]+sum[j])
{
sum[i]=num[i]+sum[j];
}
}
if(max<sum[i]) max=sum[i];
}
printf("%d\n",max);
}
return 0;
}