Cod sursa(job #1493994)

Utilizator delta_wolfAndrei Stoica delta_wolf Data 30 septembrie 2015 12:55:06
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int a[5005],v[5005],f[5005];
int main()
{
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);
    int n,j,nr,i,k,min;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    if(n==1) {printf("1\n");return 0;}
    memcpy(v,a,sizeof(a));
    sort(v+1,v+n+1);
    f[1]=v[1];k=1;
    for(i=2;i<=n;i++)
        if(v[i]!=v[i-1])
            f[++k]=v[i];
    min=n+1;
    for(i=1;i<=n;i++)
        if(a[i]==f[1])
        {
            nr=2;
            for(j=i+1;j<=n;j++)
            {
                if(a[j]==f[nr])
                    nr++;
                if(nr==k+1)
                {
                    if(min>j-i+1)
                        min=j-i+1;
                    break;
                }
            }
        }
    if(min==n+1)
        printf("-1\n");
    else
        printf("%d\n",min);
    return 0;
}