Pagini recente » Cod sursa (job #2764488) | Cod sursa (job #1609069) | Istoria paginii utilizator/loghin_antonia | Cod sursa (job #251143) | Cod sursa (job #487239)
Cod sursa(job #487239)
#include <fstream>
#include <vector>
#include <algorithm>
#define INF 10000
using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");
long long a[6000], f[6000];
vector <int> s;
long long n, i, lmin(INF), l, k;
int main()
{
fin >> n;
for (i = 0; i < n; ++i)
{
fin >> a[i];
f[i] = a[i];
}
fin.close();
sort(f, f + n);
for (i = 0; i < n; ++i)
{
while (i < n && f[i] == f[i+1]) i++;
s.push_back(f[i]);
}
// for ( i = 0; i < s.size(); ++i) fout << s[i] << ' ';
for (i = 0; i < n; i++)
if (a[i] == s[0])
{
l = i;
k = 1;
while (l < n && k < s.size())
{
if (a[l] == s[k]) k++;
l++;
}
if (k == s.size())
{
if (l == i && lmin == INF) lmin = 1;
else
if (l-i < lmin) lmin = l-i;
}
}
if ( lmin != INF) fout << lmin << '\n';
else fout << -1 << '\n';
fout.close();
return 0;
}