CT - Counting triangles

Tác giả: RR

Ngôn ngữ: Pascal

{$MODE OBJFPC}

uses math;
var
  test,x,y,i,j,ii,jj:longint;
  res,dx,dy:int64;
function min3(a,b,c:longint):longint;
begin
  exit(min(min(a,b),c));
end;
function max3(a,b,c:longint):longint;
begin
  exit(max(max(a,b),c));
end;


begin
  read(test);
  for test:=1 to test do
    begin
      read(x,y);
      res:=0;
      for i:=-x to x do
      for j:=-y to y do
      if (i<>0) or (j<>0) then
        begin
          ii:=j; jj:=-i;
          dx:=max3(0,i,ii)-min3(0,i,ii);
          dy:=max3(0,j,jj)-min3(0,j,jj);
          if (dx<=x) and (dy<=y) then
            inc(res,(x-dx+1)*(y-dy+1));
        end;
      writeln(res);
    end;
end.

Download