Pagini recente » Cod sursa (job #1873029) | Cod sursa (job #1440647) | Cod sursa (job #1250107) | Cod sursa (job #262954) | Cod sursa (job #548210)
Cod sursa(job #548210)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
pair <int,int> x[5005];
int n,val,v[5005],r=6000,poz[5005];
inline int min(int x,int y)
{
return x < y ? x : y;
}
ifstream in("secv.in");
ofstream out("secv.out");
int main()
{
in>>n;
for(int i=1;i<=n;++i)
{
in>>x[i].first;
x[i].second=i;
}
sort(&x[1],&x[n+1]);
val=1;
v[x[1].second]=1;
for(int i=2;i<=n;++i)
{
if(x[i].first!=x[i-1].first)
++val;
v[x[i].second]=val;
}
for(int i=1;i<=n;++i)
{
if(v[i]==1)
poz[1]=i;
else
{
poz[v[i]]=poz[v[i]-1];
if(v[i]==val)
r=min(r,i-poz[v[i]]+1);
}
}
if(r==6000)
r=-1;
out<<r;
return 0;
}