Cod sursa(job #587077)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 3 mai 2011 20:34:19
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#include <algorithm>

using namespace std;

int v[5001],c[5001];

int main()
{
    int n,m=0,i,ind,j,sol=10000;
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);
    scanf("%d\n",&n);
    for (i=1;i<=n;++i)
    {
        scanf("%d ",&v[i]);
        c[i]=v[i];
    }
    sort(c+1,c+n+1);
    c[0]=-1;
    for (i=1;i<=n;++i)
        if (c[i]!=c[i-1])
        {
            ++m;
            c[m]=c[i];
        }
    for (i=1;i<=n-m+1;++i)
    {
        ind=i;
        for (j=1;j<=m&&ind<=n;)
        {
            while ((v[ind]!=c[j])&&(ind<=n))
                ++ind;
            while ((v[ind]==c[j])&&(j<=m)&&(ind<=n))
            {
                ++j;
                ++ind;
            }
        }
        if ((j==m+1)&&(ind-i<sol))
            sol=ind-i;
    }
    if (sol==10000) sol=-1;
    printf("%d",sol);
    return 0;
}