一个问题
查看原帖
一个问题
671260
Nekomusume楼主2022/8/10 13:44

这道题坐标系原点到底是(0,0,0)还是(1,1,1)?

根据题目描述:

"给出参数 (1,1,1),(2,2,2) 时,中间的 8 块小方块就会被蒸发"

可知原点似乎是(0,0,0);

但是下面这段代码却是全wa

#include <iostream>
using namespace std;
int main()
{
    int a[22][22][22] = {0};
    int w, x, h, q;
    cin >> w >> x >> h;
    cin >> q;
    int x1, y1, z1, x2, y2, z2;
    for(int i = 1; i <= q; i++)
    {
        cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
        for(int j = x1; j <= x2; j++)
        {
            for(int k = y1; k <= y2; k++)
            {
                for(int l = z1; l <= z2; l++)
                {
                    a[j][k][l] = 1;
                }
            } 
        }
    }
    int cnt = 0;
    for(int i = 0; i < w; i++)
    {
        for(int j = 0; j < x; j++)
        {
            for(int k = 0; k < h; k++)
            {
                if(a[i][j][k] == 0)
                    cnt++;
            }
        }
    }
    cout << cnt << endl;
    return 0;
}

但是如果把36行的三重循环边界改成从1到w/x/h,就会ac

所以这题的题面和测试点是不是有点不符啊

2022/8/10 13:44
加载中...