AC代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,k,l,w,x,h,V[20][20][20],x1,y1,z1,x2,y2,z2,ans;
scanf("%d%d%d%d",&w,&x,&h,&i);
memset(V,1,sizeof(V));
ans=w*x*h;
for(i=i;i>0;i--)
{
scanf("%d%d%d%d%d%d",&x1,&y1,&z1,&x2,&y2,&z2);
for(j=x1;j<=x2;j++)
for(k=y1;k<=y2;k++)
for(l=z1;l<=z2;l++)
{
if(V[j][k][l]>=1)
ans--;
V[j][k][l]=0;
}
}
printf("%d",ans);
return 0;
}
一开始的判定条件是 if(V[j][k][l]==1),然后就寄了
可我在开始已经用memset把未切割部分设为1了,为什么还要用>=号