C++40分235WA,萌新求助,大佬救救吧
查看原帖
C++40分235WA,萌新求助,大佬救救吧
1212465
SilVeR__WolF楼主2023/12/3 16:31
#include<bits/stdc++.h>
using namespace std;
int main(){
	int w,x,h,q;
	cin>>w>>x>>h>>q;
	int x1[q],x2[q],y1[q],y2[q],z1[q],z2[q];
	for(int i=0;i<q;i++)
	{
		cin>>x1[i]>>y1[i]>>z1[i]>>x2[i]>>y2[i]>>z2[i];
	}
	int zh=w*x*h,s=0;//zh是方块数量总和,s是被切割的方块总个数 
	for(int i=1;i<=w;i++)
	{
		for(int j=1;j<=x;j++)
		{
			for(int k=1;k<h;k++)//循坏遍历每一个大长方体中的小方块,i=x坐标,j=y坐标,k=z坐标
			{
				for(int p=0;p<q;p++)//对于每一个小方块,在每一次切割中寻找有没有切到该小方块的
				{
					if(x1[p]<=i&&i<=x2[p]&&y1[p]<=j&&j<=y2[p]&&z1[p]<=k&&k<=z2[p])//如果有一个小方块坐标满足这个条件,则表示这个小方块被切割了 
					{
						s++;
						break;//一个小方块可能被多次切割区域划中,但很明显,每个小方块只能被切割一次 ,所以只要这个小方块被切割过,则立马跳出循环,判断下一个小方块 
					}
				}
			}
		}
	}
	cout<<zh-s;//原来的总数减去去掉的小方块个数,就是剩下的小方块个数 
}

我不太擅长用多维数组(搞不清下标的次序),就只能这样写了。3个WA,蒟蒻求助

2023/12/3 16:31
加载中...