Pagini recente » Cod sursa (job #2820227) | Cod sursa (job #2658857) | Cod sursa (job #2301273) | Cod sursa (job #2612462) | Cod sursa (job #238221)
Cod sursa(job #238221)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define NMAX 5002
int A[NMAX],S[NMAX],E[NMAX];
inline int min(const int a,const int b)
{
return a<b?a:b;
}
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int N,ANS=NMAX;
scanf("%d",&N);
int i,j;
for(i=1; i<=N; ++i){
scanf("%d",&A[i]);
S[i]=A[i];
}
sort(S+1,S+N+1);
int inc,sf=0;
S[0]=-1;
for(i=1; i<=N; ++i)
{
if( S[i]!=S[i-1] )
E[++sf]=S[i];
}
if( sf==1 ){
printf("%d\n",1);
return 0;
}
for(i=1; i<=N; ++i)
{
if( E[1]==A[i] )
{
inc=2;
for(j=i+1; j<=N; ++j)
{
if( E[inc]==A[j] )
++inc;
if( inc==sf+1 ){
ANS=min(ANS,j-i+1);
break;
}
}
}
}
if( ANS!=NMAX )
printf("%d\n",ANS);
else
printf("-1\n");
return 0;
}