Pagini recente » Cod sursa (job #2325231) | Cod sursa (job #2160775) | Cod sursa (job #2090962) | Cod sursa (job #752042) | Cod sursa (job #1847711)
#include <cstdio>
#include<algorithm>
using namespace std;
int v[5005];
struct nr
{
int x,poz;
}sortat[5005];
bool cmp(nr a,nr b)
{
return a.x<b.x;
}
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n,i,j,st,dr,lmin;
st=dr=1;
scanf("%d",&n);
lmin=n+1;
for(i=1;i<=n;i++)
{
scanf("%d",&sortat[i].x);
sortat[i].poz=i;
}
sort(sortat+1,sortat+n+1,cmp);
int d=0,a,b;
sortat[0].x=-1;
for(i=1;i<=n;i++)
{
if(sortat[i].x!=sortat[i-1].x)
d++;
v[sortat[i].poz]=d;
}
for(dr=d;dr<=n;dr++)
{
if(v[dr]==d)
{
a=d;
for(st=dr;st>0;st--)
{
if(v[st]==a)
a--;
if(!a)
break;
}
if(!a&&(dr-st+1)<lmin)
lmin=dr-st+1;
}
}
if(lmin==n+1)
lmin=-1;
printf("%d",lmin);
}