⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3960475_wa.pas

📁 北大大牛代码 1240道题的原代码 超级权威
💻 PAS
字号:
const MaxN=100;

var f:array [1..MaxN] of boolean;
    x1, y1, x2, y2:array [1..MaxN] of integer;
    i, j, n, x, y, xc, yc, rc, area:integer;
    nadoelo:boolean;

begin
  read (x, y, n);
  for i:=1 to n do begin
    read (xc, yc, rc);
    x1[i]:=xc-rc; x2[i]:=xc+rc;
    y1[i]:=yc-rc; y2[i]:=yc+rc;
  end;
  fillchar (f, sizeof (f), 1);
  repeat
    nadoelo:=true;
    for i:=1 to n do if f[i] then
      for j:=i+1 to n do if f[j] then
        if (x2[i]>=x1[j]) and (x2[j]>=x1[i]) and
           (y2[i]>=y1[j]) and (y2[j]>=y1[i]) then begin
          if (x1[i] > x1[j]) then begin x1[i]:=x1[j];end;
          if (y1[i] > y1[j]) then begin y1[i]:=y1[j];end;
          if (x2[i] < x2[j]) then begin x2[i]:=x2[j];end;
          if (y2[i] < y2[j]) then begin y2[i]:=y2[j];end;
          f[j]:=false; nadoelo:=false;
        end;
  until nadoelo;
  area:=x*y;
  for i:=1 to n do if f[i] then dec (area, (x2[i]-x1[i])*(y2[i]-y1[i]));
  writeln (area);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -