Pagini recente » Cod sursa (job #185865) | Cod sursa (job #1992579) | Cod sursa (job #702168) | Cod sursa (job #869564) | Cod sursa (job #832095)
Cod sursa(job #832095)
#include<cstdio>
using namespace std;
int n , v[5001] , viz[5001] , l[5001] , poz[5001] , nr , p , max ;
void citire();
void solve();
void tipar();
int main()
{
citire();
solve();
tipar();
return 0;
}
void citire()
{
freopen("secv.in" , "r" , stdin );
scanf("%d" , &n );
nr = n;
for( int i = 1 ; i<= n ; ++i )
{
scanf("%d" , &v[i] );
if(viz[v[i]])nr--;
else
viz[v[i]] = 1;
}
}
void solve()
{
l[n] = 1;
max = 1;
for( int i = n-1 ; i ; i-- )
{
for( int j = i+1 ; j <= n ; ++j )
if(v[i] < v[j] && l[j] + 1 > l[i])
{
l[i] = l[j] + 1 ;
poz[i] = j;
}
if(max < l[i])
{
max = l[i];
p = i;
}
}
}
void tipar()
{
freopen("secv.out" , "w" , stdout );
if(max < nr )
printf("-1");
else
{
int x = p;
while(poz[x] != 0)
x = poz[x];
printf("%d" , x-p+1);
}
}