Pagini recente » Cod sursa (job #2476532) | Cod sursa (job #84898) | Cod sursa (job #396946) | Cod sursa (job #2205557) | Cod sursa (job #584299)
Cod sursa(job #584299)
#include <cstdio>
#include <algorithm>
#define inf 0x3f3f3f3f
#define MAXN 5010
using namespace std;
int A[MAXN], C[MAXN], ord[MAXN], res, N;
inline bool cmp (const int &a, const int &b)
{
return A[a] < A[b];
}
int main ()
{
freopen ("secv.in", "r", stdin);
freopen ("secv.out", "w", stdout);
scanf ("%d\n", &N);
int i, x, y;
for (i = 1; i <= N; i++) {
scanf ("%d ", &A[i]);
ord[i] = i;
}
sort (ord + 1, ord + N + 1, cmp);
for (i = 1; i <= N; i++)
if (A[ord[i]] != A[ord[i - 1]])
C[++C[0]] = A[ord[i]];
res = inf;
for (i = 1; i <= N; i++) {
x = 1; y = i;
while (y <= N) {
if (A[y] == C[x])
++x;
if (x > C[0]) {
res = min (res, y - i + 1);
break;
}
y += 1;
}
}
printf ("%d\n", res != inf ? res : -1);
return 0;
}