Pagini recente » Cod sursa (job #2633117) | Cod sursa (job #377111) | Cod sursa (job #2755860) | Cod sursa (job #2151779) | Cod sursa (job #1852242)
#include <cstdio>
#include<algorithm>
using namespace std;
int v[5005];
struct secv
{
int x,y;
};
secv v1[5005];
bool cmp(secv a,secv b)
{
return a.x<b.x;
}
int v2[5005];
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n,i,j,k,min,max,st,dr,val,l;
scanf("%d",&n);
for(i=1; i<=n; i++){
scanf("%d",&v[i]);
v1[i].x=v[i];
v1[i].y=i;
}
sort(v1+1,v1+n+1,cmp);
j=1;
v1[0].x=v1[1].x;k=0;
for(i=1; i<=n; i++)
{
if(v1[i].x!=v1[i-1].x)
j++;
if(j==1)
v2[++k]=v1[i].y;
v[v1[i].y]=j;
}
max=j;
min=5001;
for(i=1;i<=n;i++)
{
if(v[i]==1)
{
k=2;
for(j=i;j<=n;j++)
{
if(v[j]==k)
k++;
if(k==max+1)
{
if(j-i+1<min)
min=j-i+1;
break;
}
}
}
}
if(min==5001)
min=-1;
printf("%d",min);
return 0;
}