Pagini recente » Cod sursa (job #2209361) | Cod sursa (job #3267042) | Cod sursa (job #998008) | Cod sursa (job #145454) | Cod sursa (job #299509)
Cod sursa(job #299509)
#include <cstdio>
#include <algorithm>
using namespace std;
#define Nmax 5011
int v[Nmax],best[Nmax],poz[Nmax],p,n,lmax;
void citire()
{
int i,j;
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d", &n);
for (i=1;i<=n;++i)
scanf("%d", &v[i]);
}
void dinamica()
{
int i,j;
best[n]=1;
poz[n]=-1;
p=n;
lmax=0;
for (i=n-1;i>=1;--i)
{
best[i]=1;
poz[i]=-1;
for (j=i+1;j<=n;++j)
if (v[i]<v[j] && best[j]+1>best[i])
{
best[i]=best[j]+1;
if (best[i]>lmax)
lmax=best[i],p=i;
poz[i]=j;
}
}
}
void solve()
{
int i,j,nr;
i=p;
while(i!=-1)
{
nr=i;
i=poz[i];
}
nr=nr-p+1;
if (nr!=0) printf("%d", nr);
else
printf("-1");
}
int main()
{
citire();
dinamica();
solve();
return 0;
}