Pagini recente » Cod sursa (job #601413) | Cod sursa (job #1155603) | Cod sursa (job #2876242) | Cod sursa (job #2393472) | Cod sursa (job #294455)
Cod sursa(job #294455)
#include <cstdio>
#include <algorithm>
const int NMAX = 5001;
inline int min(int a, int b)
{
return a > b ? b : a;
}
int main()
{
int unic[NMAX], sir[NMAX], sir2[NMAX];
short N, i, k = 0, sz, rasp = NMAX, j;
freopen("secv.in", "r", stdin);
freopen("secv.out", "w", stdout);
scanf("%hd", &N);
if (!N) { printf("0\n"); return 0; }
for (i = 0; i != N; ++i) {
scanf("%d ", sir + i);
sir2[i] = sir[i];
}
std::sort(sir2, sir2 + N);
k = 0; unic[k++] = sir2[0];
--N;
for (i = 0; i != N; ++i)
if (sir2[i] != sir2[i + 1]) {
unic[k++] = sir2[i + 1];
}
++N;
sz = k;
for (i = 0; i != N; ++i)
if (sir[i] == unic[k = 0]) {
for (j = i + 1, k = 1; j != N && k != sz; ++j)
if (sir[j] == unic[k]) k++;
if (k == sz) rasp = min(rasp, j - i);
}
if (rasp == NMAX) rasp = -1;
printf("%d\n", rasp);
return 0;
}