Pagini recente » Cod sursa (job #814171) | Cod sursa (job #46120) | Cod sursa (job #1455481) | Cod sursa (job #1393202) | Cod sursa (job #548197)
Cod sursa(job #548197)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in ("secv.in");
ofstream out ("secv.out");
const int N = 1 << 13;
pair <int, int> x[N];
int v[N], n, val, poz[N], rez = 1 << 30, MAX;
void citire () {
in >> n;
for (int i = 1; i <= n; ++i) {
in >> x[i].first;
MAX = max (MAX, x[i].first);
x[i].second = i;
}
}
void exe () {
sort (&x[1], &x[n + 1]);
val = 1;
v[x[1].second] = 1;
for (int i = 2; i <= n; ++i) {
if (x[i].first != x[i - 1]. first) {
++val;
}
v[x[i].second] = val;
}
for (int i = 1; i <= n; ++i) {
if (v[i] == 1) {
poz[1] = i;
} else {
poz[v[i]] = poz[v[i - 1]];
if (v[i] == MAX) {
rez = min (rez, i - poz[v[i]] + 1);
}
}
}
}
void afisare () {
out << rez << '\n';
}
int main () {
citire ();
exe ();
afisare ();
return 0;
}