Pagini recente » Cod sursa (job #3166098) | Cod sursa (job #1677130) | Cod sursa (job #2451642) | Cod sursa (job #218003) | Cod sursa (job #1728915)
#include <fstream>
#include <algorithm>
#include <unordered_map>
#define VAL 5005
#define INF 1000000
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
int N, i, K;
int v[VAL], x[VAL];
int last[VAL], mn;
unordered_map<int, int> poz;
int main()
{
fin >> N;
for (i=1; i<=N; i++)
{
fin >> v[i];
x[i]=v[i];
}
sort(x+1, x+N+1);
for (i=1; i<=N; i++)
if (poz[x[i]]==0)
poz[x[i]]=++K;
mn=INF;
for (i=1; i<=N; i++)
{
if (poz[v[i]]==1)
last[poz[v[i]]]=i;
else
last[poz[v[i]]]=last[poz[v[i]]-1];
if (poz[v[i]]==K && last[poz[v[i]]]!=0)
mn=min(mn, i-last[K]+1);
}
if (mn==INF)
mn=-1;
fout << mn << '\n';
fin.close();
fout.close();
return 0;
}