Cod sursa(job #2402877)

Utilizator NeganAlex Mihalcea Negan Data 11 aprilie 2019 09:05:24
Problema Secv Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("secv.in");
ofstream fout("secv.out");

int n, k, a[5005], b[5005];
int Len(int p)
{
    int i,j = 1;

    for (i = p; i <= n; i++)
    {
        if (a[i] == b[j]) j++;
        if (j > k) return i - p + 1;
    }
    return n + 1;
}

int main()
{
    int i, lmin;
    fin >> n;
    for(i = 1;i <= n;i++)
    {
        fin >> a[i];
        b[i] = a[i];
    }
    sort(b + 1, b + n + 1);
    k = 1;
    for(i = 2;i <= n;i++)
        if(b[k] != b[i])
            b[++k] = b[i];

    lmin = n + 1;
    for(i = 1;i <= n;i++)
        if (a[i] == b[1])
            lmin = min(lmin, Len(i));
    if(lmin == n + 1)
        fout << "-1";
    else
        fout << lmin;
    return 0;
}