Pagini recente » Cod sursa (job #1220366) | Cod sursa (job #3181213) | Cod sursa (job #1423574) | Cod sursa (job #1376884) | Cod sursa (job #1885980)
#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=0;
while(step)
{
if(s+step<=m && l[s+step]<x)
s+=step;
step/=2;
}
l[s+1]=x;
}
//printf("\n\n %d: \n",x);
//for(int i=1;i<=m;i++)
//printf("%d ",l[i]);
}
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;
}