Pagini recente » Cod sursa (job #181654) | Cod sursa (job #589707) | Cod sursa (job #468151) | Cod sursa (job #1493542) | Cod sursa (job #809672)
Cod sursa(job #809672)
#include<stdio.h>
#include<algorithm>
#include<string.h>
#define NMAX 5007
using namespace std;
int b[NMAX],v[NMAX],ap[NMAX];
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n,j,nr,i,k,min2;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&b[i]);
if(n==1)
{
printf("1\n");
return 0;
}
memcpy(v,b,sizeof(b));
sort(v+1,v+n+1);
ap[1]=v[1];
k=1;
for(i=2;i<=n;i++)
if(v[i]!=v[i-1])
ap[++k]=v[i];
min2=n+1;
for(i=1;i<=n;i++)
if(b[i]==ap[1])//verific
{
nr=2;
for(j=i+1;j<=n;j++)
{
if(b[j]==ap[nr])//daca numar
nr++;
if(nr==k+1)//daca e egal
{
if(min2>j-i+1)//noua solutie
min2=j-i+1;
break;
}
}
}
if(min2==n+1)
printf("-1\n");
else
printf("%d\n",min2);
return 0;
}