Pagini recente » Cod sursa (job #2642569) | Cod sursa (job #546780) | Cod sursa (job #1683455) | Cod sursa (job #2126192) | Cod sursa (job #546724)
Cod sursa(job #546724)
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
const int N=5010;
vector < pair<int , int> > x(N);
int v[N],p[N],val;
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n,i,r=N;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x[i].first);
x[i].second=i;
}
sort(&x[1],&x[n+1]);
v[x[1].second]=1;
val=1;
for(i=2;i<=n;i++)
{
if(x[i].first!=x[i-1].first)
++val;
v[x[i].second]=val;
}
for(i=1;i<=n;i++)
{
if(v[i]==1)
p[v[i]]=i;
else
p[v[i]]=p[v[i]-1];
if(v[i]==val)
{
if(p[v[i]]!=0)
r=min(r,i-p[v[i]]+1);
}
}
if(r==5010)
printf("-1");
printf("%d\n",r);
/*for(i=1;i<=n;i++)
printf("%d %d\n",x[i].first,x[i].second);
for(i=1;i<=n;i++)
printf("%d ",p[i]);
printf("%d",val);*/
return 0;
}