Cod sursa(job #2657855)

Utilizator pregoliStana Andrei pregoli Data 12 octombrie 2020 14:50:21
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
#include <algorithm>
#define Nmax 5005
#define INF 2000000000

using namespace std;

int a[Nmax], b[Nmax], N, sol = INF;

int main()
{
    int i, j, K, ind;
    freopen("secv.in", "r", stdin);
    freopen("secv.out", "w", stdout);
    scanf("%d", &N);
    for (i = 1; i <= N; ++i)
    {
        scanf("%d", &a[i]);
        b[i] = a[i];
    }
    sort(b + 1, b + N + 1);
    K = 1;
    for (i = 2; i <= N; ++i)
        if (b[i] != b[i - 1])
            b[++K] = b[i];
    for (i = 1; i <= N; ++i)
    {
        ind = 1;
        j = i;
        while (j <= N)
        {
            if (a[j] == b[ind])
                ++ind;
            if (ind == K + 1)
            {
                sol = min(sol, j - i + 1);
                break;
            }
            ++j;
        }
    }
    if (sol == INF)
        printf("-1\n");
    else
        printf("%d\n", sol);
    return 0;
}