Pagini recente » Cod sursa (job #2264484) | Cod sursa (job #1003011) | Cod sursa (job #169031) | Cod sursa (job #2380409) | Cod sursa (job #2338852)
#include <fstream>
#include <algorithm>
#define MAX 5001
using namespace std;
int v[MAX], copie[MAX], subsir[MAX], pozitii[MAX];
int main()
{
int n, m, k, i, j, l, st, dr, Min = 2e9;
ifstream fin("secv.in");
ofstream fout("secv.out");
fin >> n;
for(i = 1; i <= n; i++)
{
fin >> v[i];
copie[i] = v[i];
}
sort(copie + 1, copie + 1 + n);
subsir[1] = copie[1];
j = 1;
for(i = 2; i <= n; i++)
if(copie[i] != copie[i - 1])
{
j++;
subsir[j] = copie[i];
}
m = j;
l = 1;
for(i = 1; i <= n; i++)
{
if(v[i] == subsir[1])
{
pozitii[l] = i;
l++;
}
}
k = l - 1;
for(i = 1; i <= k; i++)
{
l = 2;
st = dr = pozitii[i];
for(j = pozitii[i] + 1; j <= n && l <= m; j++)
{
if(v[j] == subsir[l])
{
dr = j;
l++;
}
}
if(l > m && Min > dr - st + 1)Min = dr - st + 1;
}
if(Min == 2e9)fout << -1;
else fout << Min;
fin.close();
fout.close();
return 0;
}