Pagini recente » Cod sursa (job #2257924) | Cod sursa (job #1322960) | Cod sursa (job #2409527) | Cod sursa (job #2978657) | Cod sursa (job #751163)
Cod sursa(job #751163)
#include <fstream>
using namespace std;
int a[100000],q[100000],p[100000],i,j,n,mx,mij,st,dr,l,pz;
int main()
{
ifstream f("scmax.in");
ofstream g("scmax.out");
f>>n;
for (i=1; i<=n; i++) f>>a[i];
q[1]=a[1];l=1;
for (i=2;i<=n;i++) {
st=1;dr=l;pz=0;
while (st<= dr && pz==0 ){ mij=(st+dr)/2;
if (q[mij]==a[i] ) pz=mij;else if (q[mij]>a[i]) dr=mij-1; else st=mij+1; }
if (pz==0) pz=st;
q[pz]=a[i];
if (st>l) l=st;
p[i]=pz;
if (p[i]>mx) mx=p[i];}
g<<mx;
return 0;
}