Pagini recente » Cod sursa (job #1146412) | Cod sursa (job #1062653) | Cod sursa (job #810247) | Cod sursa (job #972099) | Cod sursa (job #147142)
Cod sursa(job #147142)
program secv;
var f,g:text;
a,v:array[1..5000]of longint;
n,k,i,ok,j,min,c,l:longint;
function poz(li,ls:longint):longint;
var i,j,modi,modj,m,man:longint;
begin
i:=li;
j:=ls;
modi:=0;
modj:=-1;
while (i<=j)do
begin
if (a[i]>a[j])then
begin
man:=a[i];
a[i]:=a[j];
a[j]:=man;
m:=modi;
modi:=-modj;
modj:=-m;
end;
i:=i+modi;
j:=j+modj;
end;
poz:=i;
end;
procedure quick(li,ls:longint);
begin
if (li<ls)then
begin
k:=poz(li,ls);
quick(li,k-1);
quick(k+1,ls);
end;
end;
begin
assign(f,'secv.in');
assign(G,'secv.out');
reset(f);
rewrite(g);
read(f,n);
for i:=1 to n do
begin
read(f,v[i]);
ok:=0;
for j:=1 to l do
if (a[j]=v[i])then
begin
ok:=1;
break;
end;
if (ok=0)then
begin
inc(l);
a[l]:=v[i];
end;
end;
quick(1,l);
i:=1;
min:=maxlongint;
while (i<=n)do
begin
if (v[i]=a[1])then
begin
c:=1;
j:=i;
k:=2;
while (j<n)do
begin
inc(j);
inc(c);
if (v[j]=a[k])then
begin
inc(k);
if (k>l)then
begin
if (c<min)then
min:=c;
break;
end;
end;
end;
end;
inc(i);
end;
if (min=maxlongint)then write(g,'-1')else
write(g,min);
close(f);
close(g);
end.