Pagini recente » Cod sursa (job #886422) | Clasament vrfeijce | Cod sursa (job #1202523) | Cod sursa (job #2370371) | Cod sursa (job #324653)
Cod sursa(job #324653)
program Giga_software;
var p,u,i,j,n,m,x,y:longint;
v:array [1..100000] of longint;
bufin:array [0..10001] of byte;
fin,fout:text;
{*----------------------------------*}
procedure zero;
begin
p:=1; u:=n;
while p <=u do
begin
m:=(p+u) shr 1;
if v[m] > x
then u:=m-1
else
p:=m+1;
end;
if v[u] = x
then writeln(fout,u)
Else
writeln(fout,-1);
end;
{*----------------------------------*}
procedure unu;
begin
p:=1; u:=n;
while p <=u do
begin
m:=(p+u) shr 1;
if v[m] > x then u:=m-1
else
p := m+1;
end;
writeln(fout,u);
end;
{*----------------------------------*}
procedure doi;
begin
p:=1; u:=n;
while p <=u do
begin
m:=(p+u) shr 1;
if v[m] < x then p:=m+1
else
u:=m-1;
end;
writeln(fout,p);
end;
{*----------------------------------*}
begin
assign(fin,'cautbin.in'); reset(fin); assign(fout,'cautbin.out'); rewrite(fout);
settextbuf(f,bufin);
readln(fin,n);
for i:=1 to n do
read(fin,v[i]);
readln(fin,m);
for j:=1 to m do
begin
read(fin,y,x);
case y of
0:zero;
1:unu;
2:doi;
end;
end;
close(fin); Close(fout);
end.