Pagini recente » Cod sursa (job #1647977) | Cod sursa (job #2804389) | Cod sursa (job #3249283) | Cod sursa (job #3248125) | Cod sursa (job #761877)
Cod sursa(job #761877)
#include <cstdio>
#include <map>
#include <algorithm>
using namespace std;
const int N = 5005;
const int INF = 2000000000;
map <int, int> pus;
int n, sol = INF, v[N], t[N];
int main()
{
int i, j, k;
freopen ("secv.in", "r", stdin);
freopen ("secv.out", "w", stdout);
scanf("%d", &n);
for(i = 1; i <= n; ++i) {
scanf("%d", &v[i]);
if(!pus[v[i]]) {
t[++t[0]] = v[i];
pus[v[i]] = 1;
}
}
if(t[0] == 1) {
printf("1\n");
return 0;
}
sort(t + 1, t + t[0] + 1);
for(i = 1; i <= n; ++i) {
if(v[i] == t[1]) {
j = 2;
for(k = i + 1; k <= n; ++k) {
if(v[k] == t[j] && j == t[0])
sol = min(sol, k - i + 1);
else if(v[k] == t[j])
++j;
}
}
}
if(sol < INF)
printf("%d\n", sol);
else printf("-1\n");
return 0;
}