Cod sursa(job #688564)

Utilizator mciprianmosincat ciprian mciprian Data 23 februarie 2012 17:45:54
Problema Cautare binara Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.9 kb
var a:array[1..100000,1..2]of integer;
v:array[1..100000]of integer;
n,i,j,k,m,max:integer;ok:boolean;
f,g:text;
begin
assign(f,'cautbin.in');reset(f);
assign(g,'cautbin.out');rewrite(g);
readln(f,n);
for i:=1 to n do read(f,v[i]);readln(f);
read(f,m);                              max:=-maxint;
for i:=1 to m do begin
for j:=1 to 2 do
read(f,a[i,j]);readln(f);end;   ok:=false;
for i:=1 to m do
for j:=1 to 2 do begin
if a[i,1]=0 then begin
for k:=1 to n do  begin
if v[k]=a[i,2] then begin max:=k;ok:=true;end else
if v[k]>a[i,2] then break; end;
if ok=false then writeln(g,'-1');end else begin
if a[i,1]=1 then
if ok=true then writeln(g,max) else
for k:=1 to n do
if v[k]>a[i,2] then begin writeln(g,k);break;end;
if a[i,1]=2 then begin
if ok=false then write(g,k+1) else begin
for k:=1 to n do
if v[k]=a[i,2] then begin writeln(g,k);break;end;end;end;end;end;
close(g);close(f);end.