Cod sursa(job #1880125)

Utilizator valentinoMoldovan Rares valentino Data 15 februarie 2017 15:28:50
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <deque>
#define inf 1 << 30
using namespace std;

ifstream f("secv.in");
ofstream g("secv.out");

int v[5005], b[5005], c[5005], n, sol = inf;

int main()
{
    int l = 0, k = 1, nr = 1;
    f >> n;
    for(int i = 1; i <= n; ++i) f >> v[i], b[i] = v[i];
    sort(b + 1, b + n + 1);
    c[1] = b[1];
    if(n == 1) g << "1" << '\n';
    else
    {
        for(int i = 2; i <= n; ++i)
        {
            if(b[i] != c[k]) c[++k] = b[i];
        }
        for(int i = 1; i <= n; ++i)
        {
            if(c[1] == v[i])
            {
                l = 1;
                nr = 2;

            for(int j = i + 1; j <= n; ++j)
            {
                l++;
                if(v[j] == c[nr]) nr++;
                if(nr - 1 == k )
                {
                     if(l < sol)   sol = l;
                    break;
                }
            }
            }
        }
        if(sol == inf) g << "-1" << '\n';
        else g << sol << '\n';
    }

}