Cod sursa(job #1295079)

Utilizator RaduVisanRadu Visan RaduVisan Data 18 decembrie 2014 19:28:11
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#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);
}