社区讨论

为什么这题开O2会WA?

P5729【深基5.例7】工艺品制作参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo7m9nta
此快照首次捕获于
2023/10/27 04:08
2 年前
此快照最后确认于
2023/10/27 04:08
2 年前
查看原帖
C++14,本来开了O2,结果全WA,检查了半天没有问题,然后把O2关掉就可以了。请问这题为什么开O2过不了?
代码:
CPP
#include <iostream>
// #include <cstdio>
using namespace std;

int main()
{
	int v[22][22][22], w, x, h, q, x1, x2, y1, y2, z1, z2, ans;
	cin >> w >> x >> h >> q;
	for (int i = 1; i <= w; i++)  // 如果for循环里面是 for、if这些语句但占用了不止一行也可以不加大括号
		for (int j = 1; j <= x; j++)
			for (int k = 1; k <= h; k++)
				v[i][j][k] = 1;  // 先把三维数组的每个位置赋值为 1
	while (q--)
	{
		cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
		for (int i = x1; i <= x2; i++)
			for (int j = y1; j <= y2; j++)
				for (int k = z1; k <= z2; k++)
					v[i][j][k] = 0;  // 对每个操作,把删除的小方块所对应的数组位置赋值为 0
	}
	for (int i = 1; i <= w; i++)
		for (int j = 1; j <= x; j++)
			for (int k = 1; k <= h; k++)
				ans += v[i][j][k];  // 所有操作之后,对每个小方块看一下是 1 还是 0,计算答案
	cout << ans << endl;
	
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...