最长下降子序列
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <string.h>
#include <math.h>
#include <stack>
#include <ctype.h>
using namespace std;
int n;
int dp[20];
int height[20];
int main()
{
cin >> n;
for( int i = 1; i <= n; i++ )
{
cin >> height[i];
dp[i] = 1;
}
for( int i = 2; i <= n; i++ )
{
int Max = 0;
for( int j = 1; j <= i-1; j++ )
{
if( height[j] >= height[i] && Max < dp[j] )
{
Max = dp[j];
}
}
dp[i] = Max + 1;
}
int ans = 0;
for( int i = 1; i <= n; i++)
ans = max(ans, dp[i]);
cout << ans <<endl;
return 0;
}