Cod sursa(job #1327754)

Utilizator VictoriaNevTascau Victoria VictoriaNev Data 27 ianuarie 2015 02:36:11
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <algorithm>
#include <fstream>
#include <cstdio>
#define NMAX 5002
using namespace std;
int maxim, i, v[NMAX], y[NMAX], ap[NMAX], m, l, lmin=NMAX, n, j;
int main()
{
    ifstream cin("secv.in");
    ofstream cout("secv.out");
    cin>>n;
    for(i=1; i<=n; i++)
        cin>>v[i],y[i]=v[i];
    sort(y+1,y+n+1);
    y[0]=-1;
    for(i=1; i<=n; i++)
        if(y[i]!=y[i-1])
            ap[++m]=y[i];
    if(m==1)
        cout<<1;else{
    for(i=1; i<=n; i++)
        if(v[i]==ap[1])
        {
            l=1;
            for(j=i+1; j<=n; j++)
            {
                if(v[j]==ap[l+1])
                    l++;
                if(m==l)
                    if(j-i+1<lmin)
                    {
                        lmin=j-i+1;
                        break;
                    }
            }
        }

    if(lmin==NMAX)
        cout<<-1;
    else
        cout<<lmin;
        }
    return 0;
}