Super Jumping !jumping !jumping!

#include<stdio.h>
#include<string.h>
int n,num[10000],dis[10000];
int cal(  )
{   
     int Max = 0;   
     for( int i = 1; i <= n;++i )   
     {       
              int max = 0,pos = 0;      
               for( int j = 0; j <= i; ++j )//找前面已经存在且符合条件的最优解          
                if( dis[j] > max && num[j] < num[i] )              
                 max = dis[j];       
                 dis[i] += num[i] + max;//找到后把本身加进去       
                 if( dis[i] > Max )          
                  Max = dis[i];    }   
                  return Max;}
int main( )
{   
     while( scanf( "%d",&n ),n )   
     {      
              num[0] = 0;      
               memset( dis,0,sizeof( dis ) );       
               for( int i = 1; i <= n; ++i )           
               scanf( "%d",&num[i] );       
               printf( "%d\n",cal(  ) );   
    }   
    return 0;
}

原文地址:https://www.cnblogs.com/QQbai/p/2135242.html