Pagini recente » Cod sursa (job #3144214) | Cod sursa (job #332373) | Cod sursa (job #2376386) | Cod sursa (job #2573214) | Cod sursa (job #1608359)
var n,m,i:longint;
multime:array[1..100005] of longint;
r,x,q:longint;
procedure cautarebinara(low,hight:longint; var r:longint);
var mid:longint;
begin
if hight-1=low then exit;
mid:=low+(hight-low) div 2;
if multime[mid]>x then cautarebinara(low,mid,r)
else if multime[mid]=x then begin r:=mid; cautarebinara(mid,hight,r) end
else cautarebinara(mid,hight,r)
end;
procedure cautarebinar(low,hight:longint; var r:longint);
var mid:longint;
begin
if hight-1=low then exit;
mid:=low+(hight-low) div 2;
if multime[mid]<x then cautarebinara(low,mid,r)
else if multime[mid]=x then begin r:=mid; cautarebinara(mid,hight,r) end
else cautarebinara(mid,hight,r)
end;
procedure cautarebin(low,hight:longint; var r:longint);
var mid:longint;
begin
if hight-1=low then exit;
mid:=low+(hight-low) div 2;
if multime[mid]<x then cautarebinara(low,mid,r)
else if multime[mid]=x then begin r:=mid; cautarebinara(low,mid,r) end
else cautarebinara(low,mid,r);
end;
begin
r:=-1;
assign(input,'cautbin.in'); reset(input);
assign(output,'cautbin.out'); rewrite(output);
readln(input,n);
for i:=1 to n do read(input,multime[i]);
readln(input,m);
for i:=1 to m do
begin
readln(input,q,x);
case q of
0: cautarebinara(1,n,r);
1: cautarebinar(1,n,r);
2: cautarebin(1,n,r);
end;
writeln(output,r);
r:=-1;
end;
close(input);
close(output);
end.