Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #903485) | Monitorul de evaluare | Cod sursa (job #276056)
Cod sursa(job #276056)
// secv.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <stdlib.h>
int e[7001];
char c[80000];
int f[7001];
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';
if(c[i-1]!=' ')
{
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=15001;
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==15001)
printf("-1");
else
printf("%d\n",secvmin);
return 0;
}