天天看點

杭電 1087 Super Jumping! Jumping! Jumping!

#include<iostream>
using namespace std;
const int maxn=1000;
int main(){
    int n,i,j; 
    int a[maxn];
    int dp[maxn]; 
    int maxsum;
    int maxend;
    while(scanf("%d",&n)&&n){
        for(i=0;i<n;i++){
            cin>>a[i];
        }
        for(i=0;i<n;i++){
            for(maxsum=0,j=0;j<i;j++){
                if(a[j]<a[i]){
                    maxsum=max(maxsum,dp[j]);
                }
            }
            dp[i]=a[i]+maxsum;
        }
        maxend=dp[0];
        for(i=1;i<n;i++){
            if(maxend<dp[i]){
                maxend=dp[i];
            }
        }
        cout<<maxend<<endl;
    }
}