#include<bits/stdc++.h>
using namespace std;
const int N=5e3+10;
int a[N];
int f[N];
int n;
int ans=-0x3f3f3f3f;
char buf[1<<21],*p1=buf,*p2=buf;
static inline char gc()
{
if(p1==p2) p2=(p1=buf)+fread(buf,1,1<<21,stdin);
return *(p1++);
}
static inline int read()
{
int fl=1,w=0;
char ch=gc();
while(!isdigit(ch)) {
if(ch=='-') fl=-1;
ch=gc();
}
while(isdigit(ch)){w=w*10+ch-'0'; ch=gc();}
return fl*w;
}
static inline void write(int x)
{
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
int main()
{
n=read();
for(int i=1;i<=n;i++) a[i]=read(),f[i]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=i-1;j++)
if(a[j]<a[i]) f[i]=max(f[i],f[j]+1),ans=max(ans,f[i]);
write(ans);
return 0;
}
本地运行没有输出是为啥,fread用的应该对吧...