Pagini recente » Cod sursa (job #1107250) | Cod sursa (job #1420966) | Cod sursa (job #1402369) | Cod sursa (job #2685246) | Cod sursa (job #300098)
Cod sursa(job #300098)
#include<fstream>
using namespace std;
int N,a[5001],b[5001],viz[10000001],l,poz[5001],p;
void ReadData()
{
int i;
ifstream fin ("secv.in");
fin>>N;
for (i=1;i<=N;i++)
{fin>>a[i];
viz[a[i]]++;
if (viz[a[i]]==1) b[++l]=a[i];
}
fin.close();
}
void Sortare()
{
int i,j,aux;
for (i=1;i<=l-1;i++)
for (j=i+1;j<=l;j++)
if (b[i]>b[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
}
}
void Solve()
{
int i,j,nr,q,min;
for (i=1;i<=N;i++)
if (a[i]==b[1])
poz[++p]=i;
min=32000;
for (i=1;i<=p;i++)
{ q=1;
for (j=poz[i];(j<=N)&&(q!=l+1);j++)
if (a[j]==b[q]) q++;
if (q==l+1) {
nr=j-poz[i];
if (min>nr) min=nr;
}
}
ofstream fout("secv.out");
if (min!=32000)
fout<<min<<"\n";
else fout<<-1<<"\n";
fout.close();
}
int main ()
{
ReadData();
Sortare();
Solve();
return 0;
}