Cod sursa(job #996757)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 12 septembrie 2013 16:16:14
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
unsigned v[5005],s[5005],x[5005];
int main()
{
    freopen("secv.in","r",stdin);
    freopen("secv.out","w",stdout);
unsigned n,i,m=0,l,j,p=0;
scanf("%u",&n);
for(i=1;i<=n;i++)
{
    scanf("%u",&v[i]);
        x[i]=v[i];
}
l=n+1;
sort(x+1,x+l);
for(i=1;i<n;i++)
if(x[i]!=x[i+1])
{
    m++;
    s[m]=x[i];
}
if(n!=0)
{
m++;
s[m]=x[n];
}
if(m>1)
{
for(i=1;i<=n;i++)
    if(v[i]==s[1])
{
    p=2;
    for(j=i+1;j<=n;j++)
    if(v[j]==s[p])
    {
        if(p<m)
        {
            p++;
        }
        else
        {
            break;
        }
    }
    if(j-i+1<l && j<=n)
    l=j-i+1;
}
if(l!=n+1)
printf("%u\n",l);
else
    printf("-1");
}
else
    printf("%u\n",m);
    return 0;
}