Cod sursa(job #2172118)

Utilizator AndreiJJIordan Andrei AndreiJJ Data 15 martie 2018 15:08:02
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("secv.in");
ofstream fout ("secv.out");
int n, m;
int a[5001], b[5001], c[5001];

int Lungime (int p)
{
    int i, j;
    j = 1;
    for (i = p; i <= n; i++)
    {
        if (a[i]==b[j])
            j++;
        if (j>m)
            return i-p+1;
    }
    return 1E6;
}
int main()
{
    int i, L;
    fin >> n;
    for (i=1; i<=n; i++)
    {
        fin >> a[i];
        c[i]=a[i];
    }
    sort (c+1, c+n+1);
    b[1]=c[1];
    m=1;
    for (i=2; i<=n; i++)
        if (c[i]!=c[i-1]) b[++m]=c[i];
    L = 1E6;
    for (i=1; i<=n-m+1; i++)
    {
        if (b[1]==a[i])
            L=min(L, Lungime(i));
    }
    if (L==1E6) fout << -1;
    else fout << L;
    return 0;
}