#P10257. [COCI 2023/2024 #5] Zlagalica
[COCI 2023/2024 #5] Zlagalica
题目背景
译自 COCI 2023/2024 Contest #5 T1「Zlagalica」
题目描述
Little Maja 喜欢拼图。既然大家都已经认识她很久了,那么一定不会对 Maja 在一个晴朗的日子里,收到一份奇怪的拼图作为礼物感到惊讶。
这个拼图由 片组成。每片拼图的形状都是矩形,并具有一定的颜色。同时,每片拼图的背面都写着 和 两个数字。在精心尝试了一段时间后,Maja 发现了这些数字的含义。
她发现数字 表示方向,换句话说,描述了下一块拼图从上侧还是从右侧连接这一块拼图。数字 表示下一块拼图连接这一块拼图的起点行/列。更具体地:
-
如果 ,我们通过将下一块拼图左下角放在当前拼图上边的第 列,将下一块拼图拼接在当前拼图的上方。
-
如果 ,我们通过将下一块拼图左下角放在当前拼图右边的第 行,将下一块拼图拼接在当前拼图的右边。
假设有颜色分别为 a
和 b
的两块拼图。图一展示了 时的拼接情况;图二展示了 时的拼接情况(这里的 均写在颜色为 a
的拼图上)
图一 | 图二 |
---|---|
Maja 已经厌烦了这个拼图,但是她的好奇心是无限的。这正是她寻求你帮助的原因。她想知道,给出全部的拼图信息,以及拼装它们的顺序序列,最终拼图是什么样的?编写程序输出一个长方形字符矩阵,恰好包含最终拼图的样子,用 .
表示这里没有拼图。
输入格式
输入的第一行包含一个整数 (),表示拼图的数目。
接下来 行,第 行包含一个字符和四个整数 ,描述了第 块拼图:
- 是一个小写英文字母,表示第 块拼图的颜色。
- ()依次表示第 块拼图行与列的长度。
- (,(与 有关))表示第 块拼图背面的数字,含义如题所述。
最后一行包含 个整数,表示拼图拼接的顺序。其中数字 表示第 块输入的拼图。保证每块拼图在序列中出现且仅出现一次。
输出格式
第一行输出完成的拼图的高度与宽度。
接下来若干行,输出拼图,不属于拼图的位置用 .
替代。
2
a 3 4 0 3
b 2 5 1 1
1 2
5 7
..bbbbb
..bbbbb
aaaa...
aaaa...
aaaa...
2
a 3 4 0 3
b 2 5 1 1
2 1
4 9
.....aaaa
.....aaaa
bbbbbaaaa
bbbbb....
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
18 17
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
..........ggggg..
........aaggggg..
........aa.......
ppppppp.aa.......
pppppppcccccccccc
pppppppcccccccccc
pppppppcccccccccc
pppppppcccccccccc
pppppppcccccccccc
ppppppp..........
ppppppp..........
提示
子任务
Subtask | Points | Constraints |
---|---|---|
1 | 17 | 拼图拼接的顺序与输入相同 |
2 | 12 | 对于所有拼图, |
3 | 对于所有拼图, | |
4 | 9 | 无额外限制 |