Pagini recente » Cod sursa (job #1264055) | Cod sursa (job #1208819) | Cod sursa (job #2754970) | Cod sursa (job #2979119) | Cod sursa (job #1080714)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ofstream fout("secv.out");
#define MAX 5010
FILE *fin=fopen("secv.in", "r");
unsigned const maxb=8192;
char buf[maxb];
int ptr=maxb-1;
int getInt()
{
int nr=0;
while(buf[ptr]>'9' || buf[ptr]<'0')
if(++ptr>=maxb)
fread(buf, maxb, 1, fin), ptr=0;
while(buf[ptr]<='9' && buf[ptr]>='0')
{
nr=nr*10+buf[ptr]-'0';
if(++ptr>=maxb)
fread(buf, maxb, 1, fin), ptr=0;
}
return nr;
}
int n, a[MAX], i, k, b[MAX], j;
int main()
{
n=getInt();
for(i=1;i<=n;i++)
{
b[i]=getInt();
a[i]=b[i];
}
sort(a+1,a+n+1);
k=0;
a[0]=-1;
for(i=1;i<=n;i++)
{
if(a[k]!=a[i])
{
a[++k]=a[i];
}
}
int lung=n+1;
if(k<=1)
{
fout<<k<<"\n";
return 0;
}
for(i=1;i<=n;i++)
{
if(b[i]==a[1])
{
int s=2;
for(j=i+1;j<=n;j++)
{
if(b[j]==a[s])
s++;
if(s==k+1)
break;
}
if(s==k+1)
{
if(lung>j-i+1)
{
lung=j-i+1;
}
}
}
}
if(lung==n+1)
{
fout<<-1<<"\n";
return 0;
}
fout<<lung<<" ";
}