Pagini recente » Cod sursa (job #1345885) | Cod sursa (job #2573455) | Cod sursa (job #1146486) | Cod sursa (job #2576461) | Cod sursa (job #387253)
Cod sursa(job #387253)
#include<cstdio> //termin-o BAAAA
int n,a[100001],l[100001],tata[100001],x[100001];
void ver(int p)
{
int pmin=0,min=2000001;
int pas=1<<17;
int i;
for(i=0;pas;pas>>=1)
{
if(a[x[i+pas]]<=a[p]&&x[0]>=i+pas)
{
i+=pas;
}
}
if(a[x[i+1]]>=a[p])
{
min=x[i+1];
pmin=i+1;
}
else
{
min=0; pmin=0;
}
if(pmin!=0)
{
tata[i]=x[pmin];
x[pmin]=p;
l[p]=l[pmin]+1;
}
else
{
tata[i]=0;
x[++x[0]]=p;
l[p]=1;
}
}
int main()
{
int i,j;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
for(i=1;i<=n;++i)
{
l[i]=0;
ver(i);
}
int max=0,pm=0;
for(i=1;i<=n;++i)
if(l[i]>max)
{
max=l[i];
pm=i;
}
return 0;
}