Pagini recente » Autentificare | simulareoji_2010_11-12_miercuri | Cod sursa (job #301852) | Cod sursa (job #870968) | Cod sursa (job #194806)
Cod sursa(job #194806)
#include <cstdio>
const int N=100010;
int n,v[N],x[N],nr;
void read(){
int i;
freopen("scmax.in","r",stdin);
scanf("%d",&n);
for (i=1;i<=n;++i)
scanf("%d",&v[i]);
}
int caut(int y){
int p=1,u=nr,m;
while (p!=u){
m=(p+u)/2;
if (y<=x[m])
u=m;
else
p=m+1;
}
if (x[p]<y)
++p;
return p;
}
void rezolva(){
int p;
x[++nr]=v[1];
for(int i=2;i<=n;++i){
p=caut(v[i]);
if(p==nr+1)
++nr;
x[p]=v[i];
}
freopen("scmax.out","w",stdout);
printf("%d\n",nr);
}
int main(){
read();
rezolva();
//write();
}