Pagini recente » Cod sursa (job #78522) | Cod sursa (job #1096513) | Cod sursa (job #427988) | Cod sursa (job #2709576) | Cod sursa (job #1985033)
#include <bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define mp make_pair
int n,A[100010],D[100010],p[100010],m,poz,M[100010],k;
void afisare(int q){
if (p[q]) afisare(p[q]);
cout<<A[q]<<" ";
}
int main(){
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
cin>>n;
for (int i=1; i<=n; i++) cin>>A[i];
M[0]=0; k=0;
for (int i=1; i<=n; i++){
int mid,st=1,dr=k;
while (st<=dr){
mid=(st+dr)/2;
if (A[i]>A[M[mid]]) st=mid+1;
else dr=mid-1;
}
M[st]=i;
k=max(k,st);
}
cout<<k<<"\n";
return 0;
}