Cod sursa(job #26974)

Utilizator izso88istvan zsolt izso88 Data 5 martie 2007 23:03:45
Problema Ograzi Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.99 kb
var ad,xs:array[0..50000,1..2] of word;
    t:text;
    N,M,W,H:longint;
    I,j,k,xp,yp:longint;
    HANY:longint;

function benne(x,y:longint):byte;
         var e,u:longint;
             megvan:boolean;
         begin
          e:=1;
          megvan:=false;
          while ((xs[e,1]+w)<(x)) and (e<n) do inc(e);

          while ((xs[e,1]<=x) and (not megvan)) and (e<n)
                           do begin
                             if xs[e,1]<=x then
                              if (xs[e,1]+w)>=x then
                               if (ad[xs[e,2],2]<=y)
                                 and ((ad[xs[e,2],2]+h)>=y) then
                                 megvan:=true;

                              inc(E);
                              end;
         if megvan then benne:=1 else benne:=0;

         end;

procedure sort;
          var i,j,jump:longint;
              done:boolean;
          begin
            jump:=n;
            while jump>1 do begin
             jump:=jump div 2;

              repeat
              done:=true;
              for i:=1 to n-jump do
               begin

               j:=i+jump;
               if xs[i,1]>xs[j,1] then
                 begin
                  xs[0]:=xs[i];
                  xs[i]:=xs[j];
                  xs[j]:=xs[0];
                  done:=false;
                 end;

               end;
              until done;

            end;
          end;

begin
 assign(t,'ograzi.in');
 reset(T);
  read(t,N,M,W,H);


  for i:=1 to n do begin
                    read(t,xp);
                    read(t,yp);
                    ad[i,1]:=xp;

                    xs[i,1]:=xp;
                    xs[i,2]:=i;

                    ad[i,2]:=yp;
                    end;

  sort;
  hany:=0;
  for i:=1 to m do begin
                    read(t,xp,yp);
                    hany:=hany+benne(xp,yp);
                   end;
  assign(t,'ograzi.out');
  rewrite(T);
  writeln(t,hany);
  close(T);
 end.