Pagini recente » Cod sursa (job #3292079) | Cod sursa (job #1293931) | Cod sursa (job #1995791) | drumarb2 | Cod sursa (job #1295079)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 5010;
int N, V[NMAX], Aux[NMAX], Distinct[NMAX], K, MinLen = NMAX;
int main()
{
freopen("secv.in", "r", stdin);
freopen("secv.out", "w", stdout);
scanf("%i", &N);
for(int i = 1; i <= N; ++ i)
scanf("%i", &V[i]), Aux[i] = V[i];
sort(Aux + 1, Aux + N + 1);
Aux[0] = Aux[1] - 1;
for(int i = 1; i <= N; ++ i)
if(Aux[i] != Aux[i - 1])
Distinct[++ K] = Aux[i];
for(int i = 1; i <= N; ++ i)
{
int Cnt = 0, j = i;
for(; j <= N && Cnt < K; ++ j)
if(V[j] == Distinct[Cnt + 1])
Cnt ++;
j --;
if(Cnt == K) MinLen = min(MinLen, j - i + 1);
}
if(MinLen == NMAX) printf("-1\n");
else printf("%i\n", MinLen);
}