Pagini recente » Cod sursa (job #1594620) | Cod sursa (job #1093548) | Cod sursa (job #60804) | Cod sursa (job #2960032) | Cod sursa (job #235841)
Cod sursa(job #235841)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define NMAX 5002
int A[NMAX],S[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] )
S[++sf]=S[i];
}
for(i=1; i+sf-1<=N; ++i)
{
if( S[1]==A[i] )
{
inc=2;
for(j=i+1; j<=N; ++j)
{
if( S[inc]==A[j] )
++inc;
if( inc==sf+1)
break;
}
ANS=min(ANS,j-i+1);
}
}
if( ANS!=NMAX )
printf("%d\n",ANS);
else
printf("-1\n");
return 0;
}