Cod sursa(job #253912)

Utilizator 05_YohnE1 La5c01 05_Yohn Data 6 februarie 2009 13:36:04
Problema Grendizer Scor 0
Compilator fpc Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 1.25 kb
type nod=record
         xx,yy:longint;
         end;
var f,g:text;
    v:array[0..1000000000,1..4]of longint;
    n,m,i,j,x,y,r,c,c1,c2,x1,x2,y1,y2:longint;

function cadran(x,a:longint):integer;
begin
if a=1 then begin
        if x>=0 then cadran:=1
                else cadran:=2;
end else if x>=0 then cadran:=3
                   else cadran:=4;
end;

procedure pr(x,c1:longint);
begin
inc(v[x,c1]);
if x>v[0,c1] then v[0,c1]:=x
             else for j:=x+1 to v[0,c1] do inc(v[x,c1]);
end;
begin
assign(f,'grendizer.in');reset(f);
assign(g,'grendizer.out');rewrite(g);
readln(f,n,m);
for i:=1 to n do begin
    readln(f,x,y);
    c1:=cadran(x,1);c2:=cadran(y,0);
    x:=abs(x);y:=abs(y);
    pr(x,c1);pr(y,c2);
    end;
for i:=1 to m do begin
    read(f,x,y,r);c:=0;
    c1:=cadran(x+r,1);x1:=abs(x+r);
    if x1>v[0,c1] then v[x1,c1]:=v[v[0,c1],c1];
    c2:=cadran(x-r,1);x2:=abs(x-r);
    if x2>v[0,c2] then v[x2,c2]:=v[v[0,c2],c2];
    if c1=c2 then c:=v[x1,c1]-v[x2,c2]
              else c:=v[x1,c1]+v[x2,c2];
    c1:=cadran(y+r,0);y1:=abs(y+r);
    if y1<v[0,c1]then c:=c+v[y1,c1]-v[v[0,c1],c1];
    c2:=cadran(y-r,0);y2:=abs(y-r);
    if y2<v[0,c2]then c:=c+v[y2,c2]-v[v[0,c2],c2];
    writeln(g,c);
end;
close(g);
end.