Cod sursa(job #1347745)

Utilizator gabimoiseMoise Gabriel gabimoise Data 19 februarie 2015 10:28:44
Problema Secv Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

long v[5100],x[5101],z[5101],k,lg,n,i,j,poz;
int main()
{
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);
    scanf("%ld",&n);
    for (i=1;i<=n;i++) {scanf("%ld",&v[i]); x[i]=v[i];}
    sort(x+1,x+n+1);
    k=0;
    for (i=1;i<=n;i++) if (x[i]!=x[i+1]) {k++; z[k]=x[i];}
    lg=20000000;
    for (i=1;i<=n;i++) if (v[i]==z[1])
    {
        poz=2; j=i+1;
        while (poz<=k) {while (z[poz]!=v[j]) j++;
                        if (j>n) break;
                        if (j<=n) poz++;}
        if ((poz==k+1) && (v[j]==z[k])) if (lg>j-i+1) lg=j-i+1;
    }
    if (lg==20000000) lg=-1;
    printf("%ld",lg);
    return 0;
}