Pagini recente » Cod sursa (job #997419) | Cod sursa (job #3337596) | Cod sursa (job #3334169) | Cod sursa (job #3319075) | Cod sursa (job #3320305)
#include <fstream>
#include <unordered_map>
#include <algorithm>
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
#define N 5001
int a[N], n, v[N], m;
unordered_map <int,int> M;
int main()
{
fin >> n;
for(int i = 1; i <= n; i++)
{
fin >> a[i];
if(M.find(a[i]) == M.end())
{
M[a[i]] = 1;
v[++m] = a[i];
}
}
sort(v + 1, v + m + 1);
int lgmin = N, lg = 0;
for(int i = 1; i <= n; i++)
if(a[i] == v[1])
{
bool ok = 1;
int nr = 2, poz;
for(int j = i + 1; j <= n && nr <= m; j++)
if(a[j] == v[nr])
{
nr++;
if(nr == m + 1)
{
poz = j;
break;
}
}
if(nr == m + 1)
{
lg = poz - i + 1;
if(lg < lgmin)
lgmin = lg;
}
}
if(lgmin != N)
fout << lgmin;
else fout << -1;
return 0;
}