和题解里的思路大同小异,但是不能AC。我看到有的题解里面用了min和max函数,我依葫芦画瓢添上去之后就re了
#include<iostream>
using namespace std;
int c,k,g,x[20],y[20],z[20],x2[20],y2[20],z2[20];
int main()
{
cin>>c>>k>>g;
int q;
bool s[c+1][k+1][g+1]={1};
cin>>q;
for(int i=1;i<=q;i++)
{
cin>>x[i]>>y[i]>>z[i]>>x2[i]>>y2[i]>>z2[i];
}
for(int i=1;i<=c;i++)
{
for(int j=1;j<=k;j++)
{
for(int ij=1;ij<=g;ij++)
{
s[i][j][ij]=1;
}
}
}
for(int i=1;i<=q;i++)
{
for(int dx=x[i];dx<=x2[i];dx++)
{
for(int dy=y[i];dy<=y2[i];dy++)
{
for(int dz=z[i];dz<=z2[i];dz++)
{
s[dx][dy][dz]=0;
}
}
}
}
int sum=0;
for(int i=1;i<=c;i++)
{
for(int j=1;j<=k;j++)
{
for(int ij=1;ij<=g;ij++)
{
if(s[i][j][ij]==1)
{
sum++;
}
}
}
}
cout<<sum;
}