Cod sursa(job #1345219)

Utilizator ipus1Stefan Enescu ipus1 Data 17 februarie 2015 13:26:48
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int v[5001],v2[5001];
int main ()
{freopen ("secv.in","r",stdin);
freopen ("secv.out","w",stdout);
int n,i,j,in=0,sf=0,x,pp,min=5002,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
    {scanf("%d",&v[i]);
    v2[i]=v[i];
    }
sort(v2+1,v2+n+1);
if(n==0)
    {printf("0");
    return 0;
    }
if(v2[1]==v2[n])
    {printf("1");
    return 0;
    }
pp=0;
for(k=1;k<=n;k++)
    {i=1;
    j=1;
    if(v[k]==v2[1])
        {in=k;
        i++;
        while(v2[i]==v2[i-1])
            i++;
        j=k+1;
        for(;i<=n;i++)
            {pp=0;
            for(;j<=n&&pp==0;j++)
                if(v[j]==v2[i])
                    {if(v2[i]==v2[n])
                        if(j-in+1<min)
                            min=j-in+1;
                    i++;
                    while(v2[i]==v2[i-1])
                        i++;
                    pp=1;
                    }
            }
        }
    }
if(min==5002)
    printf("-1");
else
    printf("%d",min);
return 0;
}