Cod sursa(job #1856218)

Utilizator VictoriaNevTascau Victoria VictoriaNev Data 24 ianuarie 2017 17:31:09
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include <algorithm>
using namespace std;
const int NMAX=5005;

int v[NMAX], no[NMAX], d[NMAX];
int main()
{

    ifstream in("secv.in");
    ofstream out("secv.out");
    int n, len=0, minim=NMAX;
    in>>n;

    for(int i=1; i<=n; i++)
    {
        in>>v[i];
        no[i]=v[i];
    }
    sort(no+1, no+n+1);
    no[0]=-1;
    int k=0;
    for(int i=1; i<=n; i++)
        if(no[i]!=no[i-1])
            no[++k]=no[i];

    for(int i=1; i<=n; i++)
        if(v[i]==no[1])
        {
            len=1;
            for(int j=i+1; j<=n; j++)
            {
                if(v[j]==no[len+1])
                    len++;

                if(len==k)
                    if(j-i+1<minim)
                    {
                        minim=j-i+1;
                        break;
                    }
            }
        }
    if(k==1)
        out<<1<<' ';
    else if(minim==NMAX)
        out<<-1<<'\n';
    else
        out<<minim<<'\n';
    return 0;
}