Pagini recente » Cod sursa (job #502700) | Cod sursa (job #379080) | Cod sursa (job #1816554) | Cod sursa (job #163310) | Cod sursa (job #276020)
Cod sursa(job #276020)
// secv.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <stdlib.h>
int e[5001];
char c[60000];
int f[5001];
int cont=0;
int compar(const void *a,const void *b)
{
return(*(int*)a-*(int*)b);
}
void parsare()
{
int i,nr=1,x=0,j;
char b;
fgets(c,60000,stdin);
for(i=0;c[i];i++)
if(c[i]==' ')
{
b=1;
e[nr++]=x;
for(j=1;j<=cont;j++)
if(f[j]==x)
{
b=0;
break;
}
if(b)
f[++cont]=x;
x=0;
}
else
x=x*10+c[i]-'0';
e[nr]=x;
b=1;
for(j=1;j<=cont;j++)
if(f[j]==x)
{
b=0;
break;
}
if(b)
f[++cont]=x;
}
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int i,j,n,nr,secvmin=5001;
scanf("%d\n",&n);
parsare();
qsort(f,cont,sizeof(int),compar);
for(i=1;i<=n;i++)
if(e[i]==f[1])
{
j=i+1;
nr=f[1];
while(nr<cont || e[j-1]!=f[cont])
{
if(e[j]==f[nr+1])
nr++;
j++;
}
if(secvmin>j-i)
secvmin=j-i;
}
if(secvmin==5001)
printf("-1");
else
printf("%d\n",secvmin);
return 0;
}