题目链接:传送门
#include <iostream>
using namespace std;
const int maxn=30000+3;
int a[maxn],d[maxn];
int main()
{
int n,i,j,cunt;
while(cin>>n)
{
cunt=1;
cin>>a[0];
d[0]=a[0];
for(i=1;i<n;i++)
{
cin>>a[i];
for(j=0;j<cunt;j++)
if(a[i]<d[j])break;
if(j>=cunt)d[cunt++]=a[i];
else d[j]=a[i];
}
cout<<cunt<<endl;
}
return 0;
}