社区讨论
为什么这题开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 条回复,欢迎继续交流。
正在加载回复...