#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:最大上升子序列和
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.