Cod sursa(job #882857)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 19 februarie 2013 15:27:02
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define NMAX 5007
using namespace std;
int b[NMAX],v[NMAX],ap[NMAX];
int main()
{
    freopen("secv.in" , "r" , stdin);
    freopen("secv.out" , "w" , stdout);
    int n=0,nr=0,k=0,min2=100000;
    scanf("%d",&n);
    for(int i=1 ; i<=n ; ++i)
        scanf("%d" , &b[i]);
    memcpy(v,b,sizeof(b));
    sort(v+1 , v+n+1);
    ap[1]=v[1];
    k=1;
    for(int i=2 ; i<=n ; ++i)
        if(v[i] != v[i-1])
            ap[++k]=v[i];
    for(int i=1 ; i<=n ; ++i)
        if(b[i] == ap[1])
        {
            nr=2;
            for(int j=i+1 ; j<=n ; ++j)
            {
                if(b[j] == ap[nr])
                    ++nr;
                if(nr == k+1)
                {
                    if(min2 > j-i+1)
                        min2=j-i+1;
                    break;
                }
            }
        }
    if (n == 1)
        printf("1\n");
    else
    if(min2 == 100000)
        printf("-1\n");
    else
        printf("%d\n" , min2);
    return 0;
}