CF1153B Serval and Toy Bricks
题目描述
幸运的是,Serval 坐上了正确的公交车,准时来到了幼儿园。到达幼儿园后,他发现玩具积木非常有趣。
他特别喜欢为别人出难题。这一次,他用许多 $1 \times 1 \times 1$ 的玩具积木搭建了一个三维物体。我们可以用一个 $n \times m$ 的矩阵来描述这个物体,其中在每个格子 $(i, j)$ 里,有 $h_{i,j}$ 块积木垒在一起。
然而,Serval 并没有给出任何 $h_{i,j}$,而是只给了你这个物体的正视图、左视图和俯视图,现在他要求你还原这个物体。注意,正视图有 $m$ 列,第 $i$ 列的高度是 $h_{1,i}, h_{2,i}, \dots, h_{n,i}$ 中的最大值。左视图同理,有 $n$ 列。俯视图是一个 $n \times m$ 的矩阵 $t_{i,j}$,其中 $t_{i,j}$ 为 $0$ 或 $1$。如果 $t_{i,j}=1$,表示 $h_{i,j}>0$,否则 $h_{i,j}=0$。
然而,Serval 很孤独,因为以前大家都觉得他出的题太难了,不愿意解答,尽管这次他保证至少存在一个满足所有视图的物体。作为他最好的朋友,你能试一试吗?
输入格式
第一行包含三个正整数 $n, m, h$($1 \leq n, m, h \leq 100$)——分别表示长度、宽度和高度。
第二行包含 $m$ 个非负整数 $a_1, a_2, \dots, a_m$,其中 $a_i$ 表示正视图中从左到右第 $i$ 列的高度($0 \leq a_i \leq h$)。
第三行包含 $n$ 个非负整数 $b_1, b_2, \dots, b_n$($0 \leq b_j \leq h$),其中 $b_j$ 表示左视图中从左到右第 $j$ 列的高度。
接下来的 $n$ 行,每行包含 $m$ 个数字,每个数字为 $0$ 或 $1$,表示俯视图。如果第 $i$ 行第 $j$ 个数字为 $1$,则 $h_{i,j}>0$,否则 $h_{i,j}=0$。
保证至少存在一个满足输入的结构。
输出格式
输出 $n$ 行,每行包含 $m$ 个整数,第 $i$ 行第 $j$ 个数表示该位置的高度。如果有多个满足条件的物体,输出任意一个即可。
说明/提示
 上图展示了第一个样例中的物体。
  第一张图展示了第二个样例输出中的物体,第二张图展示了它的三视图。
由 ChatGPT 4.1 翻译