#include <iostream>
using namespace std;
int max(int a, int b)
{
if(a>b)
{
return a;
}
return b;
}
int main()
{
int num;
while(cin>>num)
{
int input[num];
int result[num];
int res = 0;
for(int i=0; i<num; i++)
{
result[i] = 1;
cin>>input[i];
}
//这叫动态规划吗
for(int i=num-2; i>=0; i--)
{
for(int j=i+1; j<num; j++)
{
if(input[i]<input[j])
{
result[i] = max(result[i],result[j]+1);
}
}
}
//找出最大值
for(int i=0; i<num; i++)
{
if(res<result[i])
{
res = result[i];
}
}
cout<<res<<endl;
}
return 0;
}


京公网安备 11010502036488号