Pagini recente » Cod sursa (job #449631) | Cod sursa (job #1972063) | Cod sursa (job #766679) | Cod sursa (job #614967) | Cod sursa (job #291657)
Cod sursa(job #291657)
#include<fstream.h>
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long v[100005],p[100005],q[100005],n,l,i;
const long s=2000000001;
long cautare(long k,long x, long y)
{long m=x+(y-x)/2;
if (x==y)
{if (y>l) q[++l+1]=s;
q[x]=k;
return x;}
else if (k<=q[m])
return cautare(k,x,m);
else return cautare(k,m+1,y);}
int main()
{fin>>n;
for (i=1;i<=n;i++)
fin>>v[i];
q[1]=s;l=0;
for (i=1;i<=n;i++)
p[i]=cautare(v[i],1,l+1);
fout<<l;
fout.close();
return 0;}