求赞!
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[100010],cnt[100010],w[100010],ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(ll i=0;i<n;i++) cin>>a[i];
w[0]=-1e16;
for(ll i=0;i<n;i++) {
ll r=lower_bound(w,w+ans+1,a[i])-w;
w[r]=a[i];
ans=max(ans,r);
}
cout<<ans;
return 0;
}