Pagini recente » Cod sursa (job #1052397) | Cod sursa (job #1348609) | Cod sursa (job #1935500) | Cod sursa (job #3036337) | Cod sursa (job #2764513)
#include <fstream>
#include <algorithm>
using namespace std;
int n;
int a[5001];
int dist[5001];
int Min;
void read() {
int i;
ifstream f("secv.in");
f >> n;
for (i = 1; i <= n; i++) {
f >> a[i];
dist[i] = a[i];
}
f.close();
}
void solve() {
int i, j, k;
sort(dist + 1, dist + n + 1);
int l = 1;
for (i = 2; i <= n; i++)
if (dist[i] != dist[i - 1])
dist[++l] = dist[i];
Min = 1e9;
for (i = n; i >= 1; i--)
if (a[i] == dist[l]) {
k = l - 1, j = i - 1;
while (j >= 1 && k >= 1) {
if (a[j] == dist[k])
k--;
j--;
}
if (k == 0)
if (i - j < Min)
Min = i - j;
}
}
void output() {
ofstream g("secv.out");
g << (Min == 1e9 ? -1 : Min);
g.close();
}
int main() {
read();
solve();
output();
return 0;
}