Cod sursa(job #882893)

Utilizator alecsandrualex cuturela alecsandru Data 19 februarie 2013 15:50:38
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int n,i,j,r[5010],v[5010],a[5010],cnt,k,mi=5010;
int main()
{
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&r[i]);
        a[i]=r[i];
    }
    sort(r+1,r+1+n);
    v[1]=r[1];
    k=1;
    for(i=2;i<=n;i++)
        if(r[i]!=r[i-1])
            v[++k]=r[i];
    for(i=1;i<=n;i++)
    {
        if(a[i]==v[1])
        {
            cnt=0;
            for(j=i;j<=n;j++)
            {
                if(a[j]==v[cnt+1])
                {
                    cnt++;
                }
                if(cnt==k)
                {
                    if(j-i+1<=mi)
                        mi=j-i+1;
                }
            }
        }
    }
    if(mi==5010)
        printf("-1");
    else
        printf("%d",mi);
    return 0;
}