Cod sursa(job #1815282)

Utilizator raulmuresanRaul Muresan raulmuresan Data 24 noiembrie 2016 23:49:19
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<fstream>
#include<vector>
#include<string>
#include<algorithm>
#define modulo 666013

using namespace std;

ifstream fin("secv.in");
ofstream fout("secv.out");
int a[5009], b[5009], c[1009];


string sir;
int i, n, k, j,contor,st,dr,sol,x,y,minim;
int frec[250];

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

            b[++k] = c[i];
        }
    }

    for(i = 1; i <= k; i++)
    {
        //fout << b[i] << " ";
    }
    minim = b[1];
    sol = 1000000000;

    for(i = 1; i <= n; i++)
    {
        if(a[i] == minim)
        {
            int j = i ;
            int poz = 1;
            while(j <= n)
            {
                if(b[poz] == a[j])
                {
                    poz ++;
                }
                if(poz >= k +1)
                {
                    //fout << i << " " << j << "\n";
                    sol = min(sol , j - i + 1);
                    break;
                }
                j++;
            }

        }
    }
    if(sol == 1000000000)
    {
        fout << "-1\n";
    }
    else
    {
       fout << sol <<"\n";
    }


}