Pagini recente » Cod sursa (job #1986471) | Cod sursa (job #426269) | Cod sursa (job #1283280) | Cod sursa (job #1623819) | Cod sursa (job #1172396)
var f, g : text;
i, j, d : integer;
n, m, k, h,ans : integer;
a : array[1..100] of longint;
Procedure Cauta(st,dr:integer);
Begin
if st<=dr then
begin
if A[(st+dr) div 2 ]= h then
begin
ans:=(st+dr) div 2;
Cauta(((st+dr) div 2)+1,dr);
end
else
if A[(st+dr) div 2 ]> h then
Cauta(1,((st+dr) div 2)-1)
else
Cauta(((st+dr) div 2)+1, dr)
end;
end;
begin
Assign(f,'cautbin.in');
reset(f);
Assign(g,'cautbin.out');
Rewrite(g);
Readln(f,n);
For d:=1 to n do
Read(f,A[d]);
Readln(f);
Readln(f,m);
For j:=1 to m do
begin
Readln(f, k, h);
Ans:=-1;
Cauta(1,n);
case k of
0 : Writeln(g,ans);
2 : begin if ans=-1 then
Writeln(g,1)
ELSE
begin
i:=ans;
while a[i-1]=h do
dec(i);
Writeln(g,i);
end;
end;
1: begin
if ans=-1 then
Writeln(g,n)
ELSE
begin
Writeln(g,ans);
i:=ans;
while a[i-1]=h do
dec(i);
Writeln(i);
end;
end;
end;
end; close(f);
close(g);
end.