Pagini recente » Cod sursa (job #814889) | Cod sursa (job #3253635) | Cod sursa (job #3171308) | Cod sursa (job #1608371) | Cod sursa (job #226916)
Cod sursa(job #226916)
program cautabin;
var A:array[1..100000] of longint;
n,m: longint;
k,x: longint;
cb,s,d,t: longint;
i: longint;
begin
assign(input,'cautbin.in');
reset(input);
assign(output,'cautbin.out');
rewrite(output);
readln(n);
for i:=1 to n do
read(A[i]);
readln;
readln(m);
for i:=1 to m do
begin
readln(k,x);
if k=0 then
begin
cb:=-1; s:=1; d:=n;
while (s<=d) do
begin
t:=s+(d-s) div 2;
if A[t]>x then d:=t-1
else
if A[t]<x then s:=t+1
else
begin
cb:=t;
break;
end;
end;
writeln(cb);
end
else
if k=1 then
begin
cb:=0; s:=1; d:=n;
while (s<=d) do
begin
t:=s+(d-s) div 2;
if A[t]<=x then
begin
cb:=t;
s:=t+1;
end
else d:=t-1;
end;
writeln(cb);
end
else
begin
cb:=n+1; s:=1; d:=n;
while (s<=d) do
begin
m:=s+(d-s) div 2;
if A[m]>=x then
begin
cb:=m;
d:=d-1;
end
else
s:=m+1;
end;
writeln(cb);
end;
end;
close(input);
close(output);
end.