Pagini recente » Cod sursa (job #26518) | Cod sursa (job #30542) | Cod sursa (job #2700181) | Cod sursa (job #2484134) | Cod sursa (job #246214)
Cod sursa(job #246214)
#include<stdio.h>
int a[100],N,x[100],lmax;
int find();
int lungime();
int main(){
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=N;++i)
scanf("%d",&a[i]);
printf("%d",lungime());
return 0;
}
int find(int val){
int p=1,u=lmax,mij;
while(p<u){
mij=(p+u)/2;
if(val<=x[mij])
u=mij;
else
p=mij+1;
}
if(x[p]<val)
return p+1;
return p;
}
int lungime(){
lmax=0;
x[++lmax]=a[1];
for(int i=2;i<=N;++i)
if(a[i]>x[lmax])
x[++lmax]=a[i];
else
x[find(a[i])]=a[i];
return lmax;
}