Pagini recente » Cod sursa (job #614772) | Cod sursa (job #1313128) | Cod sursa (job #449014) | Cod sursa (job #1498827) | Cod sursa (job #1885954)
#include <stdio.h>
#define N 100005
int n,i,m;
int v[N],l[N],pos[N];
void bs(int x)
{
if(x>l[m])
l[++m]=x;
else
{
int step=1<<17,s=1;
while(step)
{
if(s+step<=m && l[s+step]<=x)
s+=step;
step/=2;
}
l[s]=x;
}
}
int main()
{
FILE *f1,*f2;
f1=fopen("scmax.in","r");
f2=fopen("scmax.out","w");
fscanf(f1,"%d",&n);
for(i=1;i<=n;i++)
{
fscanf(f1,"%d",&v[i]);
bs(v[i]);
}
fprintf(f2,"%d",m);
return 0;
}