Pagini recente » Cod sursa (job #1685594) | Cod sursa (job #2451071) | Cod sursa (job #2357354) | Cod sursa (job #2384339) | Cod sursa (job #1994136)
#include<bits/stdc++.h>
#define rc(x) return cout<<x<<endl,0
#define pb push_back
#define in insert
#define er erase
#define fr first
#define sc second
const int inf=INT_MAX;
const int nmax=2e9+5;
const int mod=1e9+7;
typedef long long ll;
using namespace std;
ll n,i,x;
map<ll,ll>bit;
void upd(ll i,ll vl)
{
for(;i<=nmax;i+=i&(-i))bit[i]=max(bit[i],vl);
}
ll query(ll i)
{
ll ans=0;
for(;i>=1;i-=i&(-i))ans=max(ans,bit[i]);
return ans;
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
cin>>n;
while(n--)
{
cin>>x;
upd(x,query(x-1)+1);
}
cout<<query(nmax)<<endl;
return 0;
}