P12979 [GCJ 2022 Qualification] Punched Cards
题目描述
一个秘密程序员团队正计划颠覆编程语言的格局,通过引入一种名为 **Punched Card Python** 的新语言让穿孔卡片重出江湖!这种语言允许人们使用穿孔卡片编写 Python 代码。像优秀的颠覆者一样,他们甚至还没有原型设计,就准备发起一场病毒式营销活动来推广这门新语言。为了这场活动,他们需要用 ASCII 艺术绘制不同尺寸的穿孔卡片。
他们想要绘制的穿孔卡片的 ASCII 艺术类似于一个没有左上角单元格的 $\mathbf{R} \times \mathbf{C}$ 矩阵。也就是说,总共有 $(\mathbf{R} \cdot \mathbf{C}) - 1$ 个单元格。每个单元格在 ASCII 艺术中被绘制为一个由上下短横线(-)、左右竖线(|)、角落加号(+)包围的句点(.)。相邻单元格共享边框上的共同字符。句点(.)用于对齐顶行的单元格。
例如,以下是一个 $\mathbf{R} = 3$ 行、$\mathbf{C} = 4$ 列的穿孔卡片:
```
..+-+-+-+
..|.|.|.|
+-+-+-+-+
|.|.|.|.|
+-+-+-+-+
|.|.|.|.|
+-+-+-+-+
```
下方样例中还有其他尺寸的示例。给定描述穿孔卡片尺寸的整数 $\mathbf{R}$ 和 $\mathbf{C}$,按照上述要求打印其 ASCII 艺术绘图。
输入格式
输入的第一行给出测试用例的数量 $\mathbf{T}$。随后是 $\mathbf{T}$ 行,每行描述一个不同的测试用例,包含两个整数 $\mathbf{R}$ 和 $\mathbf{C}$:表示需要绘制的穿孔卡片的行数和列数。
输出格式
对于每个测试用例,输出一行 `Case #x:`,其中 $x$ 是测试用例编号(从 1 开始)。然后,额外输出 $(2 \cdot \mathbf{R}) + 1$ 行,包含 $\mathbf{R}$ 行 $\mathbf{C}$ 列穿孔卡片的 ASCII 艺术绘图。
说明/提示
**样例解释**
样例 #1 是题目描述中的示例。样例 #2 和 #3 是额外示例。注意,每个用例的输出恰好包含 $\mathbf{R} \cdot \mathbf{C} + 3$ 个句点。
**限制条件**
**测试集 1(11 分,可见评测结果)**
- $1 \leq \mathbf{T} \leq 81$。
- $2 \leq \mathbf{R} \leq 10$。
- $2 \leq \mathbf{C} \leq 10$。
翻译由 DeepSeek V3 完成