Pagini recente » Cod sursa (job #2152595) | Cod sursa (job #2803359) | Cod sursa (job #1854003) | Cod sursa (job #2777159) | Cod sursa (job #1185080)
#include <cstdio>
#include <algorithm>
#define nmax 5001
#define M 2000000
using namespace std;
FILE *in=fopen("secv.in","r");
FILE *out=fopen("secv.out","w");
int n,v[nmax],x[nmax],s[nmax],i,k,c,p1,p2,minim,j;
int main()
{
fscanf(in,"%d",&n);
for(i=1;i<=n;i++){
fscanf(in,"%d",&v[i]);
s[i]=v[i];
}
sort(s+1,s+n+1);
if(s[1]==s[n])
fprintf(out,"1\n");
else{
k=1;
x[1]=s[1];
for(i=2;i<=n;i++)
if(s[i]!=s[i-1])
x[++k]=s[i];
minim=M;
for(i=1;i<=n;i++)
{
c=1;
if(v[i]==x[c])
{
p1=i;
c++;
for(j=i;j<=n;j++)
{
if(v[j]==x[c])
{
c++;
if(c==k+1){p2=j;break;}
}
}
if(c-1==k)
{
if(minim>p2-p1+1)
minim=p2-p1+1;
}
}
}
if(minim!=M)
fprintf(out,"%d",minim);
else if(minim==M)
fprintf(out,"-1");
}
return 0;
}