这道题目为什么全WA
题目:https://www.luogu.com.cn/problem/P5729我的代码:
#include<iostream>
using namespace std;
int main()
{
int w, x, h; cin>>w>>x>>h; //输入w、x、h
int square = {0}; //用一个3维数组模拟长方体,初始化所有存在的小正方体为0,不存在的为1
int n; cin>>n; //输入n
for(int i=0; i<n; ++i) {
int x1, x2, y1, y2, z1, z2;
cin>>x1>>x2>>y1>>y2>>z1>>z2;
for(int a = x1; a <= x2; ++a)
for(int b = y1; b <= y2; ++b)
for(int c = z1; c <= z2; ++c)
square = 1; //删除这些立方体
}
int s = 0;
for(int a = 0; a < w; ++a)
for(int b = 0; b < x; ++b)
for(int c = 0; c < h; ++c)
if(square == 0) s++;//数剩下的立方体的个数
cout<<s;
return 0;
}
测试点没有问题,但是交上去就全部WA,请问是什么原因 首先,第 10 行,输入顺序错了,看一下题目中的说明(奇怪,输入顺序错了样例应该也是会得到错误的结果的);另外还有一个不确定的问题:看输入范围约束,似乎题目中的坐标是从 1 开始的,而您使用的数组下标是从 0 开始的,不过看说明中的例子,如果 4 x 4 x 4 的立方体中 ((1, 1, 1), (2, 2, 2)) 表示的是“中间的 8 块”,那么坐标又应该是从 0 开始的,这一点可能需要您再测试一下。 楼主是否要继续跟进,或者问题已经解决? liuzhengyuan 发表于 2022-8-10 04:17
楼主是否要继续跟进,或者问题已经解决?
不知道为啥,这个帖子有人回复了,但是我这里没有提醒 dolly_yos2 发表于 2022-8-3 21:31
首先,第 10 行,输入顺序错了,看一下题目中的说明(奇怪,输入顺序错了样例应该也是会得到错误的结果的) ...
又写了一遍,测试点还是全WA,但还是不知道有啥问题{:10_292:}
#include<iostream>
#define MAXN 25
using namespace std;
int w, x, h;
int cube;
void split(int x1, int y1, int z1, int x2, int y2, int z2) {
for(int i=x1; i<=x2; ++i) {
for(int j=y1; j<=y2; ++j) {
for(int k=z1; k<=z2; ++k)
cube = 1;
}
}
}
int count() {
int c=0;
for(int i=1;i<=w;++i) {
for(int j=1;j<=x;++j) {
for(int k=1;k<=h;++k)
if(cube == 0) c++;
}
}
return c;
}
int main()
{
int n;
cin>>w>>x>>h>>n;
for(int i=0; i<n; ++i) {
int x1, y1, z1, x2, y2, z2;
cin>>x1>>y1>>z2>>x2>>y2>>z2;
split(x1, y1, z1, x2, y2, z2);
}
cout<<count();
return 0;
} tommyyu 发表于 2022-9-23 08:27
又写了一遍,测试点还是全WA,但还是不知道有啥问题
没太仔细看,不过您是不是再仔细看一下第 30 行? 本帖最后由 tommyyu 于 2022-9-23 13:41 编辑
dolly_yos2 发表于 2022-9-23 13:26
没太仔细看,不过您是不是再仔细看一下第 30 行?
谢谢,还是我太粗心了{:10_266:}
页:
[1]