#include<stdio.h>
#define N 1000
int main(){
int n;
int A[N],DP[N];
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){scanf("%d",&A[i]);DP[i]=A[i];}
for(int i=0;i<n;i++){
for(int j=0;j<i;j++){
if(A[j]<A[i]&&DP[j]+A[i]>DP[i]) DP[i]=DP[j]+A[i];
}
}
//
int Max=0;
for(int i=0;i<n;i++)
if(DP[i]>Max)Max=DP[i];
printf("%d\n",Max);
}
return 0;
}
/**************************************************************
Problem: 1480
User: cust123
Language: C++
Result: Accepted
Time:30 ms
Memory:1020 kb
****************************************************************/
题目1480:最大上升子序列和
最新推荐文章于 2024-06-08 11:28:59 发布