Pagini recente » Cod sursa (job #1172651) | Cod sursa (job #3039990) | Cod sursa (job #2907006) | Cod sursa (job #91321) | Cod sursa (job #1327045)
#include<stdio.h>
#include<algorithm>
using namespace std;
int d[5005],i,nr,j,sol,ok,n;
struct str
{
int x,poz;
};
str v[5005];
bool sortare1(str a , str b)
{
return a.x<b.x;
}
bool sortare2(str a, str b)
{
return a.poz<b.poz;
}
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i].x);
v[i].poz=i;
}
sort(v+1,v+1+n,sortare1);
for(i=1;i<=n;i++)
{
if(v[i].x!=v[i-1].x)
{
nr++;
}
v[i].x=nr;
}
sort(v+1,v+1+n,sortare2);
sol=n+1;
for(i=1;i<=n;i++)
{
ok=0;
if(v[i].x!=1)
{
for(j=i-1;j>=1;j--)
{
if(v[j].x==v[i].x-1&&d[j]!=0)
{
ok=d[j];
break;
}
}
d[i]=ok;
}
else d[i]=i;
// printf("%d ",d[i]);
// d[i]=ok;
if(v[i].x==nr&&i-d[i]+1<sol&&d[i]!=0)
sol=i-d[i]+1;
}
if(sol==n+1)
printf("-1");
else printf("%d",sol);
return 0;
}