# 文件说明

- `statement.md`：题面
- `std.cpp`：C++17 标准解
- `gen_data.py`：数据与答案生成脚本
- `1.in ~ 10.in`：测试输入
- `1.ans ~ 10.ans`：对应标准输出

# 测试点设计

1. `1.in`：最小规模，单个方块。
2. `2.in`：`1 × 1`，高度取到上界 50，检查纯纵向堆叠。
3. `3.in`：`1 × 50`，单排、含 0、高低交替，检查左右拼接与空位。
4. `4.in`：`50 × 1`，单列、含 0、前后方向变化大，检查“后排到前排”的覆盖关系。
5. `5.in`：题目中的 `3 × 3` 例子。
6. `6.in`：`12 × 12` 的均匀大平台，检查大面积平顶与大量内部覆盖。
7. `7.in`：山形+挖洞，检查局部空洞、遮挡与不规则轮廓。
8. `8.in`：单调台阶，检查高度递增带来的层层覆盖。
9. `9.in`：中等规模混合数据，含空位、边缘高柱和伪随机起伏。
10. `10.in`：`50 × 50` 极限规模伪随机压力数据，值域到 50。

# 校验

可执行：

```bash
python3 gen_data.py
g++ -std=c++17 -O2 -pipe -s std.cpp -o std
for i in {1..10}; do
  ./std < $i.in > out.txt
  diff -u out.txt $i.ans
done
```

当前包内数据已经按上述方式核对通过。
