Pagini recente » Cod sursa (job #774028) | Cod sursa (job #1323145) | Cod sursa (job #1324066) | Cod sursa (job #364821) | Cod sursa (job #2236036)
#include <bits/stdc++.h>
#define N 5005
using namespace std;
ifstream fin("secv.in") ;
ofstream fout("secv.out") ;
pair<int,int> a[N] ;
int v[N] , n ;
bool compar(pair<int,int> p1 , pair<int,int> p2 )
{
return p1.first < p2.first ;
}
int main()
{
int i , x , k = 0 , lg = 0 , minim , j ;
fin >> n ;
for ( i = 1 ; i <= n ; i++ )
{
fin >> x ;
a[i] = make_pair(x,i) ;
}
sort(a+1,a+n+1,compar) ;
a[0].first = -1 ;
for ( i = 1 ; i <= n ; i++ )
{
if ( a[i].first > a[i-1].first )
k++ ;
v[a[i].second] = k ;
}
minim = 0x3f3f3f3f ;
for ( i = 1 ; i <= n ; i++ )
{
if ( v[i] == 1 )
{
lg = 2 ;
for ( j = i+1 ; j <= n && lg <= k ; j++ )
{
if ( v[j] == 1 && lg == 2 )
i = j ;
if ( v[j] == lg )
lg++ ;
}
if ( lg > k )
minim = min(minim,j-i) ;
}
}
if ( minim == 0x3f3f3f3f )
fout << "-1" ;
else
fout << minim ;
}