Pagini recente » Cod sursa (job #362653) | Cod sursa (job #1041423) | Cod sursa (job #890234) | Cod sursa (job #2112907) | Cod sursa (job #1863035)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int v[5005],v2[5005],vc[5005],cont[5005],bin[5005],n,j,poz[5005];
ifstream in("secv.in");
ofstream out("secv.out");
int bs(int k)
{
int l,r,med=1;
l=0;
r=j-1;
while(l<=r)
{
med=(r+l)/2;
if(vc[med]==k)
return med;
if(vc[med]<k)
l=med+1;
else
r=med-1;
}
return -1;
}
int main()
{
int lc=0,smax=1000000,nr,ci;
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d",&n);
for(int i=1; i<=n; i++)
scanf("%d",&v[i]),v2[i]=v[i];
sort(v2+1,v2+n+1);
vc[j]=v[1];
int last=v[1];
for(int i=2;i<=n;i++)
if(v[i]!=last)
vc[++j]=v[i],last=v[i];
for(int i=1; i<=n; i++)
bin[i]=bs(v[i]);
for(int i=1; i<=n; i++)
{
if(bin[i]==0)
{
int val,l;
val=1;
for(int r=i+1; r<=n; r++)
{
if(bin[r]==val)
{
val++;
if(val==j)
{
l=r-i+1;
if(l<smax)
{
smax=l;
break;
}
}
}
}
}
}
printf("%d",smax); return 0;
}