Pagini recente » Cod sursa (job #2940672) | Cod sursa (job #293675) | Cod sursa (job #303547) | Cod sursa (job #284171) | Cod sursa (job #1692154)
#include<fstream>
#include<algorithm>
#include<string.h>
using namespace std;
ifstream in("secv.in");
ofstream out("secv.out");
#define MAX 5010
int v[MAX], l[MAX], E[MAX],O[MAX],D[MAX], E1[MAX], AIB[MAX], N;
int main()
{
int i;
in >> N;
for (int i = 1;i <= N;++i)
{
in >> v[i];
l[i] = v[i];
O[i] = v[i];
}
sort(l + 1, l + N + 1);
int length = 1;
for (i = 2;i <= N;++i)
if (l[length] < l[i])
l[++length] = l[i];
for (i = 1;i <= N;++i)
v[i] = lower_bound(l + 1, l + length + 1, v[i]) - l;
int mn = (1 << 30);
if (length == 1)
{
out << 1;
return 0;
}
for (int i = 1;i <= N;++i)
if (v[i] == length && E[v[i] - 1] != 0)
mn = min(mn, i - E[v[i] - 1] + 1);
else if (v[i] == 1)
E[v[i]] = i;
else if (E[v[i] - 1] != 0)
E[v[i]] = E[v[i] - 1];
if (mn == (1 << 30))
out << -1;
else
out << mn;
return 0;
}