QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 512 MB مجموع النقاط: 50

#12051. 拼图

الإحصائيات

小玛雅一直很喜欢拼图。大家都知道她有这个爱好很久了,所以有一天,玛雅收到了一份奇特的拼图礼物,也就不足为奇了。

这套拼图共有 $n$ 块。每一块都是矩形,且具有特定的颜色。此外,每块拼图的背面都写着两个数字:$u$ 和 $d$。经过一段时间的巧妙组合和尝试拼装,玛雅弄明白了这些数字的含义。

她发现数字 $u$ 代表“方向”,换句话说,它决定了下一块拼图是连接在当前拼图的上方还是右侧。数字 $d$ 指定了我们连接下一块拼图时所依据的起始列/行。具体细节如下:

  • 如果 $u$ 等于 $0$,我们将下一块拼图连接在当前拼图的上方,连接方式是将下一块拼图的左下角与当前拼图顶边的第 $d$ 列对齐。
  • 如果 $u$ 等于 $1$,我们将下一块拼图连接在当前拼图的右侧,连接方式是将下一块拼图的左下角与当前拼图右边的第 $d$ 行对齐。

让我们以颜色为 "a" 和 "b" 的拼图为例进行演示。图 1 展示了 $u=0$ 且 $d=3$ 的情况。图 2 展示了 $u=1$ 且 $d=3$ 的情况。(在这两种情况下,$u$ 和 $d$ 均代表写在颜色为 "a" 的拼图背面的数字)。

图 1

图 2

玛雅已经厌倦了这个令人困惑的拼图,但她的好奇心永无止境!这就是为什么她向你寻求帮助。她想知道,在给定每一块拼图的描述以及它们的拼接顺序后,完成后的拼图是什么样子的?请编写一个程序,输出完成后的拼图的尺寸(高度和宽度),以及它在一个相同高度和宽度的矩形内的最终外观,其中 "." 表示拼图中没有部分的位置。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 20$),表示拼图块的数量。

接下来的 $n$ 行中,第 $i$ 行包含 1 个字符和 4 个整数,依次为 $b_i, r_i, s_i, u_i, d_i$,表示第 $i$ 块拼图的描述:

  • $b_i$ 始终为 1 个小写英文字母,代表第 $i$ 块拼图的颜色。
  • $r_i$ 和 $s_i$ ($1 \le r_i, s_i \le 10$) 分别代表第 $i$ 块拼图的行数和列数。
  • $u_i$ 和 $d_i$ ($0 \le u_i \le 1, 1 \le d_i \le r_i, s_i$(取决于 $u_i$)) 是写在第 $i$ 块拼图背面的数字,含义与题目描述中相同。

输入的最后一行包含 $n$ 个整数,表示拼图的连接顺序,其中数字 $i$ ($1 \le i \le n$) 代表输入中的第 $i$ 块拼图。每块拼图在序列中恰好出现一次。

输出格式

输出完成后的拼图的高度和宽度。之后,输出该拼图在相同高度和宽度的矩形内的外观。在矩形内没有拼图部分的位置,输出 "."。

子任务

子任务 分值 约束
1 17 拼图的连接顺序与输入顺序相同。
2 12 对于每块拼图:$u = 0$。
3 12 对于每块拼图:$u = 1$。
4 9 无额外约束。

样例

样例输入 1

2
a 3 4 0 3
b 2 5 1 1
1 2

样例输出 1

5 7
..bbbbb
..bbbbb
aaaa...
aaaa...
aaaa...

样例输入 2

2
a 3 4 0 3
b 2 5 1 1
2 1

样例输出 2

4 9
.....aaaa
.....aaaa
bbbbbaaaa
bbbbb....

样例输入 3

4
g 9 5 0 2
a 3 2 1 1
c 5 10 0 2
p 8 7 1 6
4 3 2 1

样例输出 3

18 17
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
........aaggggg..
........aa.......
ppppppp.aa.......
pppppppcccccccccc
pppppppcccccccccc
pppppppcccccccccc
pppppppcccccccccc
pppppppcccccccccc
ppppppp..........
ppppppp..........

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.