Cod sursa(job #1777885)

Utilizator Men_In_BlackMarco Polo Men_In_Black Data 12 octombrie 2016 23:17:31
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <algorithm>
#define nmax 5001

using namespace std;

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

int n,v[nmax],i,a[nmax],lgMin = 2000000,t[nmax],k,p,j;

int main()
{
  fin >> n;
    for (i = 1; i <= n; ++i)
    {
        fin >> a[i];
        v[i] = a[i];
    }
    sort(v + 1, v + n + 1);
    k=0;
    t[++k]=v[1];
    for (i=2;i<=n;++i)
        if (v[i]!=t[k])
            t[++k]=v[i];
    for (i = 1; i <= n - k + 1; ++i)
        if (a[i] == t[1])
        {
            p = 2;
            for (j = i + 1; j <= n && p <= k; ++j)
                if (a[j] == t[p])
                p++;
            if (p > k)
                lgMin = min(lgMin, j - i);
        }
    if (lgMin == 2000000)
        fout << '-1'<<'\n';
    else
        fout << lgMin << '\n';
    return 0;
}