Pagini recente » Cod sursa (job #2007699) | Cod sursa (job #1944969) | Cod sursa (job #1530184) | Cod sursa (job #1361646) | Cod sursa (job #1183414)
#include <cstdio>
#include <unordered_map>
#include <algorithm>
#define MAX 5111
using namespace std;
#define min(a,b) (((a)<(b))?(a):(b))
unordered_map <int,int> hashin;
int nr,v[MAX],newvec[MAX],ans=MAX*MAX;
int main()
{
int n;
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d",v+i);
hashin[v[i]]+=1;
}
for (auto local_it = hashin.begin(); local_it!= hashin.end(); ++local_it )newvec[++nr]=local_it->first;
sort(newvec+1,newvec+nr+1);
for(int i=1;i<=n;++i)
if(v[i]==newvec[1]){
int now=2;
int j=i+1;
for( ;now<=nr and j<=n;++j)
if(newvec[now]==v[j])++now;
if(now==nr+1)
ans=min(ans,j-i);
}
printf("%d\n",(ans!=MAX*MAX)?ans:-1);
return 0;
}