Pagini recente » Cod sursa (job #1892858) | Cod sursa (job #1532572) | Cod sursa (job #2321080) | Cod sursa (job #2328931) | Cod sursa (job #1745593)
#include <iostream>
#include <cstdio>
#include <map>
#define MAXN 5050
#define inf 0x3fffffff
using namespace std;
int n;
int a[MAXN];
map<int, int> nr;
map<int, int> ult;
void citire()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
nr[a[i]] = 1;
}
}
void solve()
{
int best = inf;
for (int i = 1; i <= n; i++) {
if (a[i] == nr.begin()->first)
ult[a[i]] = i;
else {
auto it = nr.find(a[i]);
it--;
int look = it->first;
auto it2 = ult.find(look);
if (it2 != ult.end()) {
ult[a[i]] = it2->second;
it++; it++;
if (it == nr.end()) {
int crt = i - (it2->second) + 1;
if (crt < best)
best = crt;
}
}
}
}
if (best == inf)
best = -1;
printf("%d", best);
}
int main()
{
freopen("secv.in", "r", stdin);
freopen("secv.out", "w", stdout);
citire();
solve();
return 0;
}