Pagini recente » Cod sursa (job #2296030) | Cod sursa (job #2129270) | Cod sursa (job #1349636) | Cod sursa (job #926991) | Cod sursa (job #628775)
Cod sursa(job #628775)
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxN=5001;
int n,nr,poz,a[maxN],b[maxN],c[maxN];
void read()
{
int i;
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
}
void work()
{
int i,j;
int s=2*maxN;
b[0]=0;
for(i=1;i<=n;++i)
b[i]=a[i];
sort(b+1,b+n+1);
nr=0;
for(i=1;i<=n;++i)
if(b[i-1]!=b[i])
{
nr++;
c[nr]=b[i];
}
for(i=1;i<=n-nr+1;++i)
{
poz=i; j=1;
while((j<=nr) && (poz<=n))
{
while((a[poz]!=c[j])&&(poz<=n))
poz++;
while((a[poz]==c[j])&&(j<=nr)&&(poz<=n))
{
j++;
poz++;
}
}
if((j==nr+1) && (poz-i<s))
s=poz-i;
}
if(s==2*maxN)
printf("-1\n");
else printf("%d\n",s);
}
int main()
{
read();
work();
return 0;
}