Pagini recente » Cod sursa (job #1669852) | Cod sursa (job #773138) | Cod sursa (job #3335837) | Cod sursa (job #3335830) | Cod sursa (job #631626)
Cod sursa(job #631626)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 5002
#define INF 0x3f3f3f3f
int compare(const void *a, const void *b)
{
return (*(int *)a - *(int *)b);
}
int main()
{
freopen("secv.in", "r", stdin);
freopen("secv.out", "w", stdout);
int n, i, j, min = INF;
int A[NMAX], B[NMAX];
scanf("%d", &n);
for (i=0; i<n; ++i) {
scanf("%d", &A[i]);
B[i] = A[i];
}
qsort(B, n, sizeof(int), compare);
int nr = 0, len;
for (i=1; i<n; ++i)
if (B[i] != B[i-1])
B[++nr] = B[i];
int k=0;
for (i=0; i<n; ++i) {
k = 0;
for (j=i; j<n; ++j)
if (A[j] == B[k]) {
++k;
if (k == nr+1) {
len = j-i+1;
break;
}
}
if (k == nr+1 && len < min) {
min = len;
}
}
printf("%d\n", (min == INF) ? -1 : min);
return 0;
}