Cod sursa(job #253888)

Utilizator andreivFMI - vacaroiu andrei andreiv Data 6 februarie 2009 13:22:00
Problema Grendizer Scor 20
Compilator fpc Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 1.09 kb
program grendizer;
var f,g:text;
    j,minx,maxx,miny,maxy,n,m,i,x,y,a,b,c,nr:longint;
    k,w:array[-300..300,-300..300] of integer;

function min(r,t:longint):longint;
begin
if r>=t then min:=t else min:=r;
end;

function max(r,t:longint):longint;
begin
if r>=t then max:=r else max:=t;
end;

begin
assign(f,'grendizer.in');
assign(g,'grendizer.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to n do
begin
readln(f);
read(f,x,y);
if x<minx then minx:=x;
if x>maxx then maxx:=x;
if y<miny then miny:=y;
if y>maxy then maxy:=y;
inc(w[x,y]);
end;                                          {
for i:=maxy downto miny do
 for j:=minx to maxx do
 k[i,j]:=w[i,j]+k[i,j-1]+k[i+1,j]-k[i+1,j-1];}

for i:=1 to m do
begin
readln(f);
read(f,a,b,c);nr:=0;
{nr:=k[a-c,b+c]-k[a+c,b+c]-k[a-c,b-c]+k[a+c,b-c];

                                                 }


for x:=min((a+c),maxx) downto max((a-c),minx) do
  for y:=max((b-c),miny) to min((b+c),maxy) do
   if (abs(x-a)+abs(y-b)=c) and (w[x,y]<>0) then
   nr:=nr+w[x,y];
writeln(g,nr);
end;

close(f);
close(g);
end.