Pagini recente » Cod sursa (job #2047858) | Cod sursa (job #1875746) | Cod sursa (job #423330) | Cod sursa (job #99580) | Cod sursa (job #1778813)
#include <fstream>
using namespace std;
int v[100001],n;
int p[100001];
int q[100001];
int l;
ifstream a("scmax.in");
ofstream b("scmax.out");
int cautbin(int f,int l,int x)
{
int m=f+(l-f)/2;
if(f<l)
{
if(x<=q[m])
return cautbin(f,m,x);
else return cautbin(m+1,l,x);
}
else if(f==l && x<=q[f])return f;
else return f+1;
}
int main()
{
a>>n;
for(int i=1;i<=n;i++)
a>>v[i];
p[1]=1;
q[1]=v[1];
l=1;
for(int i=2;i<=n;i++)
{
int poz=0;
poz=cautbin(1,l,v[i]);
q[poz]=v[i];
p[i]=poz;
if(poz>l)l++;
}
int m=0,d=0;
for(int i=1;i<=n;i++)
if(m<p[i])
{
m=p[i];
d=i;
}
b<<m<<'\n';
// b<<v[d];
// for(int i=d-1;i>=1;i--)
// if(p[i]==m-1 && v[i]<)
int s=0;
for(int i=1;i<=n;i++)
return 0;
}