Pagini recente » Cod sursa (job #2698845) | Cod sursa (job #2429732) | Cod sursa (job #2407114) | Cod sursa (job #2945770) | Cod sursa (job #1491251)
#include <cstdio>
#include <iostream>
#include <set>
using namespace std;
int main() {
freopen("secv.in", "r", stdin);
freopen("secv.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(0);
int rp[5005], rc[5005], v[5005], n;
set<int> s;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> v[i];
s.insert(v[i]);
}
set<int>::iterator it = s.begin();
for (int i = 1; i <= n; i++) {
if (v[i] == *it) {
rp[i] = 1;
}
}
int ant = *it, k = 2;
for (it++; it != s.end(); it++) {
for (int i = 1; i <= n; i++) {
if (v[i] == *it) {
for (int j = i - 1; j > 0; j--) {
if (v[j] == ant && rp[j] > 0) {
rc[i] = i - j + rp[j];
break;
}
}
}
}
for (int i = 1; i <= n; i++) {
rp[i] = rc[i];
rc[i] = 0;
}
ant = *it;
k++;
}
k--;
int ans = 5005;
for (int i = 1; i <= n; i++) {
if (rp[i] > 0 && rp[i] < ans) {
ans = rp[i];
}
}
cout << ((ans == 5005) ? -1 : ans);
return 0;
}