Pagini recente » Cod sursa (job #91552) | Cod sursa (job #973029) | Cod sursa (job #3273237) | Cod sursa (job #444212) | Cod sursa (job #206336)
Cod sursa(job #206336)
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
#define FIN "secv.in"
#define FOUT "secv.out"
#define pb push_back
#define x begin
#define y end
#define NMAX 10000
#define INF 666666
int N;
vector<int> v;
int v1[NMAX],frecv[NMAX];
int main()
{
int i,X,nr,REZ=INF;
freopen(FIN,"rt",stdin);
scanf("%d", &N);
for (i=0;i<N;++i)
{
scanf("%d", &X);
v.pb(X);
}
sort(v.x(),v.y());
nr=frecv[v[0]]=1;
for (i=1;i<N;++i)
if (v[i]!=v[i-1])
{
nr++;
frecv[v[i]]=nr;
}
for (i=1;i<=nr;++i)
v1[i]=-INF;
for (i=0;i<=N;++i)
{
if (frecv[v[i]]==1)
v1[1]=i;
else
v1[frecv[v[i]]]=v1[frecv[v[i]]-1];
if (i-v1[nr]<REZ)
REZ=i-v1[nr];
}
freopen(FOUT,"wt",stdout);
if (REZ==INF)
printf("-1");
else
printf("%d\n",REZ+1);
return 0;
}