program hledani;
var n,k,i,x : longint;
data : array[1..1000000] of longint;
function find(cislo,dolni,horni:longint):longint;
var pul : longint;
begin
find:=0;
if (dolni >= horni) then
begin
if (dolni=horni) and (data[dolni] = cislo) then
find:=dolni;
while (find-1 > 0) and (data[find-1] = cislo) do
dec(find);
end
else
begin
pul:= (horni + dolni) div 2;
if (data[pul] = cislo) then
begin
find:=find(cislo,pul,pul);
exit;
end
else if (data[pul] > cislo) then
horni:=pul-1
else
dolni:=pul+1;
find:=find(cislo,dolni,horni);
end;
end;
begin
read(n,k);
for i:=1 to n do
read(data[i]);
for i:=1 to k do
begin
read(x);
write(find(x,1,n),' ');
end;
end.
Kdo byste našel v nějakém z těchto programů chybu, dejte mi to vědět - můžete tak získat bonusové body (1 chyba ≈ 5 bodů). ;)