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

📄 ac1186.pas

📁 这是在网络上搜集到的在东京大学的ACM上面解决的一些题目的源码
💻 PAS
字号:
program tju1186;
const
  maxn=100;
var
  x1,y1,z1,x2,y2,z2:array[1..maxn]of integer;
  n,i,x,y,z,r,ans:longint;
procedure cal(l,u1,v1,w1,u2,v2,w2:longint);
  begin
    while (l>0) and ((u2<=x1[l]) or (u1>=x2[l]) or (v2<=y1[l]) or
          (v1>=y2[l]) or (w2<=z1[l]) or (w1>=z2[l])) do dec(l);
    if l=0 then begin inc(ans,(u2-u1)*(v2-v1)*(w2-w1));exit;end;
    if u1<x1[l] then begin cal(l-1,u1,v1,w1,x1[l],v2,w2);u1:=x1[l];end;
    if u2>x2[l] then begin cal(l-1,x2[l],v1,w1,u2,v2,w2);u2:=x2[l];end;
    if v1<y1[l] then begin cal(l-1,u1,v1,w1,u2,y1[l],w2);v1:=y1[l];end;
    if v2>y2[l] then begin cal(l-1,u1,y2[l],w1,u2,v2,w2);v2:=y2[l];end;
    if w1<z1[l] then cal(l-1,u1,v1,w1,u2,v2,z1[l]);
    if w2>z2[l] then cal(l-1,u1,v1,z2[l],u2,v2,w2);
  end;
begin
  repeat
    read(n);ans:=0;
    for i:=1 to n do begin
      read(x,y,z,r);
      x1[i]:=x-r;y1[i]:=y-r;z1[i]:=z-r;
      x2[i]:=x+r;y2[i]:=y+r;z2[i]:=z+r;
      cal(i-1,x1[i],y1[i],z1[i],x2[i],y2[i],z2[i]);
    end;
    writeln(ans);
  until seekeof;
end.

⌨️ 快捷键说明

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