Cod sursa(job #769896)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 21 iulie 2012 11:56:35
Problema Dreptunghiuri Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
Program dreptunghiuri;
 var rad:array [1..1 shl 20] of longint;
     i,j,n,m:longint;
     sol:int64;
     fi,fo:text;
function rez(h,w:longint):longint;
 var sol,r1,r2,delta,k:longint;
begin
 sol:=1;
  for k:=1 to h-1 do begin
   delta:=w*w-4*k*(h-k);
   if (delta=0) and (w mod 2=0) then inc(sol)
   else if (delta>0) and (rad[delta]>0) then begin
            r1:=w-rad[delta]; r2:=w+rad[delta];
            if (r1>=2) and (r1<2*w) and (r1 mod 2=0) then inc(sol);
            if (r2>=2) and (r2<2*w) and (r2 mod 2=0) then inc(sol);
                                         end;
                   end;
 rez:=sol;
end;
begin
 assign(fi,'dreptunghiuri.in');
  assign(fo,'dreptunghiuri.out');
 reset(fi); rewrite(fo); readln(fi,n,m);
  for i:=1 to 1000 do rad[i*i]:=i;
  for i:=2 to n do
   for j:=2 to m do
    sol:=sol+(n-i+1)*(m-j+1)*rez(i-1,j-1);
  write(fo,sol);
 close(fo);
end.