Cod sursa(job #1121464)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 25 februarie 2014 12:55:13
Problema Secv Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <cstdio>
#include <algorithm>
#define DIM 5010
using namespace std;
const int INF=2000000010;
int n, i, j, k, nr, minim=INF, poz, minim2=INF;
int v[DIM], s[DIM], a[DIM];
int main(){
    freopen("secv.in", "r", stdin);
    freopen("secv.out", "w", stdout);
    scanf("%d", &n);
    for(i=1; i<=n; i++)
    {
        scanf("%d", &v[i]);
        if(v[i]<minim2)
            minim2=v[i];
        s[i]=v[i];
    }
    sort(s+1, s+n+1);
    nr=1;
    a[1]=s[1];
    for(i=2; i<=n; i++)
        if(s[i]!=s[i-1])
            a[++nr]=s[i];
    for(k=1; k<=n; k++)
        if(v[k]==minim2)
        {
            poz=k;
            for(i=2; i<=nr && j<=n; i++)
                for(j=poz+1; j<=n; j++)
                    if(v[j]==a[i])
                    {
                        poz=j;
                        break;
                    }
            if(i==nr+1)
                if(j-k+1<minim)
                    minim=j-k+1;
        }
    if(minim==INF)
        printf("-1\n");
    else
        printf("%d\n", minim);
    return 0;
}