Pagini recente » Cod sursa (job #1972567) | Cod sursa (job #1108885) | Cod sursa (job #951528) | Cod sursa (job #1658972) | Cod sursa (job #1572140)
#include <fstream>
#include <algorithm>
const int MAX_N = 5000;
using namespace std;
int V[MAX_N];
int tmp[MAX_N];
int main() {
ifstream in("secv.in");
ofstream out("secv.out");
in.tie(0);
ios_base::sync_with_stdio(0);
int N;
int minLength;
int numUnique;
in >> N;
for (int i = 0; i < N; i++) {
in >> V[i];
tmp[i] = V[i];
}
sort(tmp, tmp + N);
numUnique = 1;
for (int i = 1; i < N; i++) {
if (tmp[i] != tmp[numUnique - 1]) {
tmp[numUnique++] = tmp[i];
}
}
minLength = N + 1;
for (int i = 0; i < N; i++) {
if (V[i] != tmp[numUnique - 1])
continue;
int j = i - 1;
int indx = numUnique - 2;
while (indx >= 0 && j >= 0 && (i - j) < minLength) {
indx -= (tmp[indx] == V[j]);
j--;
}
if (indx == -1)
minLength = min(minLength, i - j);
}
if (minLength == N + 1) {
minLength = -1;
}
out << minLength << '\n';
out.close();
return 0;
}