Pagini recente » Cod sursa (job #2634445) | Cod sursa (job #427312) | Cod sursa (job #1147366) | Cod sursa (job #532016) | Cod sursa (job #1075848)
program cautbin;
var n,m,x,i,r:longint;
a:array[1..100000] of longint;
function cb0(x:longint):longint;
var i,j,m:longint;
u:boolean;
begin
i:=1;
j:=n;
u:=false;
while (i<=j) do
begin
m:=(i+j) div 2;
if x>a[m] then i:=m+1
else if x<a[m] then j:=m-1
else begin cb0:=m; u:=true; i:=m+1; end;
end;
if not u then cb0:=-1;
end;
function cb1(x:longint):longint;
var i,j,m:longint;
u:boolean;
begin
i:=1;
j:=n;
u:=false;
while (i<=j) do
begin
m:=(i+j) div 2;
if x>=a[m] then begin i:=m+1; cb1:=m; end
else j:=m-1
end;
end;
function cb2(x:longint):longint;
var i,j,m:longint;
u:boolean;
begin
i:=1;
j:=n;
u:=false;
while (i<=j) do
begin
m:=(i+j) div 2;
if x<=a[m] then begin j:=m-1; cb2:=m; end
else i:=i+1;
end;
end;
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(m);
for i:=1 to m do
begin
readln(r,x);
case r of
0:writeln(cb0(x));
1:writeln(cb1(x));
2:writeln(cb2(x));
end;
end;
close(output);
end.