Pagini recente » Cod sursa (job #445674) | Cod sursa (job #2970240) | Cod sursa (job #2786526) | Cod sursa (job #318726) | Cod sursa (job #570108)
Cod sursa(job #570108)
#include<stdio.h>
#include<algorithm>
#define NMAX 5005
#define INF 2000000000
using namespace std;
int A[NMAX], N, i, j, Min = INF, Sir[NMAX], Numere, Pos, Cnt;
pair< int, int > Ord[NMAX];
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d", &N);
for( i=0; i<N; i++ )
{
scanf("%d", &A[i]);
Ord[i] = make_pair( A[i], i );
}
sort( Ord, Ord+N );
Sir[1] = Ord[0].first;
Numere = 1;
for( i=1; i<N; i++ )
if( Ord[i].first != Ord[i-1].first )
Sir[++Numere] = Ord[i].first;
for( i=0; Ord[i].first == Sir[1]; i++ )
{
Pos = Ord[i].second;
Cnt = 1;
for( j=Pos+1; j<N && Cnt < Numere; j++ )
if( A[j] == Sir[Cnt+1] )
++Cnt;
if( Cnt==Numere && j-Pos+1 < Min )
Min = j-Pos;
}
printf("%d\n", ( Min == INF ) ? -1 : Min );
return 0;
}