Pagini recente » Cod sursa (job #49868) | Cod sursa (job #1449614) | Cod sursa (job #2894544) | Cod sursa (job #628744) | Cod sursa (job #1442298)
program cbin;
var a : array[1..100] of longint;
fi,fo : text;
n,m,i,tip,val : longint;
function search0(p,u,key : longint) : longint;
var m : longint;
begin
while p <= u do begin
m := (p+u) div 2;
if a[m] <= key then p := m+1 else u := m-1;
end;
m := (p+u) div 2;
if a[m] > key then dec(m);
if a[m] = key then search0 := m else search0 := -1;
end;
function search1(p,u,key : longint) : longint;
var m : longint;
begin
while p < u do begin
m := (p+u) div 2;
if a[m] <= key then p := m+1 else u := m;
end;
m := (p+u) div 2;
if a[m] > key then dec(m);
search1 := m;
end;
function search2(p,u,key : longint) : longint;
var m : longint;
begin
while p < u do begin
m := (p+u) div 2;
if a[m] <= key then p := m+1 else u := m;
end;
m := (p+u) div 2;
if a[m] < key then inc(m);
search2 := m;
end;
begin
assign(fi,'cautbin.in'); reset(fi);
assign(fo,'cautbin.out'); rewrite(fo);
read(fi,n);
for i:=1 to n do read(fi,a[i]);
read(fi,m);
while m > 0 do begin
read(fi,tip,val);
if tip = 0 then writeln(search0(1,n,val)) else
if tip = 1 then writeln(search1(1,n,val)) else
if tip = 2 then writeln(search2(1,n,val));
write('zbs');
dec(m);
end;
close(fi);
close(fo);
end.