Pagini recente » Cod sursa (job #1863002) | Cod sursa (job #279426) | Cod sursa (job #2285395) | Cod sursa (job #2365995) | Cod sursa (job #534649)
Cod sursa(job #534649)
#include<stdio.h>
#define MAX 5010
long long n,v[MAX],best[MAX],rec[MAX];
long long FndMax(int pos)
{
int a,max=-2000000;
rec[pos]=0;
a=pos--;
while(pos>0)
{
if(max < v[pos] && v[pos] < v[a] )
{
max=v[pos];
rec[a]=pos;
}
--pos;
}
if(rec[a]>-1)
return best[rec[a]];
else
return 0;
}
int main()
{
int i,j;
freopen("subsir2.in","r",stdin);
freopen("subsir2.out","w",stdout);
scanf("%lld",&n);
for(i=1;i<=n;++i)
scanf("%lld",v+i);
long long min=1000000;
for(i=1;i<=n;++i)
best[i]=1+FndMax(i);
int ptr=v[n];
int sol=best[n];
for(i=n-1;i>0;--i)
if(v[i]>ptr && best[i]<sol)
{
ptr=v[i];
sol=best[i];
}
printf("%d\n",sol);
//reconstr sol
return 0;
}