Cod sursa(job #1327177)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 26 ianuarie 2015 14:15:28
Problema Secv Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int v[5005],sr[5005],nr[5005];
int main()
{
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
int n,i,m=0,j,l,ans;
ans=n+1;
scanf("%u",&n);
for(i=1;i<=n;i++)
{
    scanf("%d",&v[i]);
    sr[i]=v[i];
}
sort(sr+1,sr+n+1);
for(i=1;i<n;i++)
if(sr[i]!=sr[i+1])
{
    m++;
    nr[m]=sr[i];
}
m++;
nr[m]=sr[i];
if(m>1 && n!=0)
{
for(i=1;i<=n;i++)
    if(v[i]==nr[1])
{
    l=2;
    for(j=i+1;j<=n;j++)
    if(v[j]==nr[l])
    {
        if(l<m)
        l++;
        else
        break;
    }
    if(j<=n)
    {
    if(j-i+1<ans)
    ans=j-i+1;
    }
}
if(ans!=n+1)
printf("%d\n",ans);
else
printf("-1");
}
else
if(n>0)
{
printf("1\n");
}
else
{
printf("-1\n");
}
    return 0;
}