Cod sursa(job #1347733)

Utilizator gabimoiseMoise Gabriel gabimoise Data 19 februarie 2015 10:15:40
Problema Secv Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <cstdio>

using namespace std;

long v[5100], minim,maxim,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]);
    minim=2000000001; maxim=0;
    lg=20000000;
    for (i=1;i<=n;i++) {if (minim>v[i]) minim=v[i]; if (maxim<v[i]) maxim=v[i];}
    for (i=1;i<=n;i++) if (v[i]==minim)
    {
        poz=minim+1; j=i+1;
        while (poz<=maxim) {while (poz!=v[j]) j++; if (j>n) break; if (j<=n) poz++;}
        if ((poz==maxim+1) && (v[j]==maxim)) if (lg>j-i+1) lg=j-i+1;
    }
    if (lg==20000000) lg=-1;
    printf("%ld",lg);
    return 0;
}