Pagini recente » Cod sursa (job #879060) | Cod sursa (job #2087522) | Cod sursa (job #1987135) | Cod sursa (job #696641) | Cod sursa (job #235126)
Cod sursa(job #235126)
#include<stdio.h>
#include<algorithm>
#define NMAX 5002
using namespace std;
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;
scanf("%d",&N);
int i,j,k;
for(i=1; i<=N; ++i){
scanf("%d",&A[i]);
S[i]=A[i];
}
sort(S+1,S+N+1);
int last=0,sf=0;
for(i=1; i<=N; ++i)
if( last!=S[i] )
{
last=S[i];
S[++sf]=S[i];
}
int first,second,ANS=N;
bool ok=0;
for(i=1; i<=N; ++i)
if( A[i]==S[1] )
{
first=i;k=i;j=1;
if( sf!=1 && k!=N)
for(; ; )
{
++k;
if( A[k]==S[j+1] )
++j;
if( j==sf || k==N )
break;
}
second=k;
if( j==sf )
{
ANS=min(ANS,second-first+1);
ok=1;
}
}
if( !ok )printf("%d\n",-1);
else
printf("%d\n",ANS);
return 0;
}