Cod sursa(job #1555121)

Utilizator Corneliu10Dumitru Corneliu Corneliu10 Data 22 decembrie 2015 12:32:09
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <cstdio>
#include <set>
#define Nmax 5010
#define inf 1<<30

using namespace std;

set <int> S;
set <int>::iterator it;
int v[Nmax];

int main()
{
    int n,i,j,sz,poz = inf;
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);

    scanf("%d",&n);

    for(i = 0;i<n;i++)
    {
        scanf("%d",&v[i]);
        S.insert(v[i]);
    }

    sz = S.size();
    it = S.begin();
    int l;

    for(i = 0;i<n - 1;i++,l = 1)
    {
        it = S.find(v[i]);
        it++;
        for(j = i + 1;j<n;j++)
            if(*it == v[j])
            {
                l++,it++;
                if(l == sz)
                {
                    if(j - i + 1 < poz)
                        poz = j - i + 1;
                    break;
                }
            }
    }
    printf("%d",poz == inf ? -1 : poz);
}