Pagini recente » Cod sursa (job #1130255) | Cod sursa (job #1847838) | Cod sursa (job #2979932) | Cod sursa (job #1256555) | Cod sursa (job #1973119)
#include <cstdio>
#include <map>
#include <algorithm>
const int INF = 2e9;
const int MAXN = 5e3;
int v[MAXN + 1], s[MAXN + 1];
std::map <int, bool> u;
int main() {
int n, sol, m;
FILE *f = fopen("secv.in", "r");
fscanf(f, "%d", &n);
m = 0;
for (int i = 1; i <= n; ++i) {
fscanf(f, "%d", &v[i]);
if (!u[v[i]]) {
u[v[i]] = 1;
s[++m] = v[i];
}
}
fclose(f);
std::sort(s + 1, s + m + 1);
sol = INF;
for (int i = 1; i <= n; ++i) {
if (s[1] == v[i]) {
int in = 1;
for (int j = i + 1; j <= n + 1; ++j) {
if (in == m) {
int curr = j - i;
if (curr < sol) {
sol = curr;
}
break;
} else if (s[in + 1] == v[j]) {
++in;
}
}
}
}
f = fopen("secv.out", "w");
if (sol == INF) {
fprintf(f, "-1\n");
} else {
fprintf(f, "%d\n", sol);
}
fclose(f);
return 0;
}