Cod sursa(job #1478124)

Utilizator dnprxDan Pracsiu dnprx Data 27 august 2015 22:12:42
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>

using namespace std;

int a[5005], b[5005], t[5005], n, lgMin;

int main()
{
    int i, k, p, j;
    ///citire
    ifstream fin("secv.in");
    fin >> n;
    for (i = 1; i <= n; ++i)
    {
        fin >> a[i];
        b[i] = a[i];
    }
    fin.close();

    sort(b + 1, b + n + 1);
    k = 0;
    t[++k] = b[1];
    for (i = 2; i <= n; ++i)
        if (b[i] != t[k]) t[++k] = b[i];

    //for (i = 1; i <= k; ++i)
    //    cout << t[i] << " ";

    /// solve
    lgMin = 2000000;
    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);
        }

    ofstream fout("secv.out");
    if (lgMin == 2000000) fout << "-1\n";
    else fout << lgMin << "\n";
    fout.close();
    return 0;
}