Pagini recente » Cod sursa (job #2051157) | Cod sursa (job #1630999) | Cod sursa (job #978932) | Cod sursa (job #745528) | Cod sursa (job #402013)
Cod sursa(job #402013)
const infile='cautbin.in';
outfile='cautbin.out';
maxnm=100000;
var v:array[1..maxnm]of longint;
n,m,x,r,i:longint;
op:0..2;
fi,fo:text;
function eg_mare(x:longint):longint;
var s,d,m:longint;
begin
s:=1; d:=n ;
while(s<=d)do begin
m:=(s+d)shr 1;
if(x<v[m])then d:=m-1
else s:=m+1;
end;
eg_mare:=d;
end;
function mic(x:longint):longint;
var s,d,m:longint;
begin
s:=1; d:=n;
while(s<=d)do begin
m:=(s+d) shr
1;
if(v[m]<x)then s:=m+1
else d:=m-1;
end;
mic:=s;
end;
begin
assign(fi,infile); reset(fi);
assign(fo,outfile); rewrite(fo);
readln(fi,n); for i:=1 to n do read(fi,v[i]);
readln(fi,m);
while(m>0)do begin
readln(fi,op,x);
case op of
0:begin
r:=eg_mare(x);
if(v[r]<>x)then writeln(fo,-1)
else writeln(fo,r);
end;
1:writeln(fo,eg_mare(x));
2:writeln(fo,mic(x));
end;
dec(m);
end;
close(fi); close(fo);
end.