luogu#P7239. 3D Cube

3D Cube

题目背景

此题数据纯手造,并有手玩验证。

idea & data:zrmpaul
tester:Hilarious_Reality


小 Z 喜欢三维模型,并从不同角度进行细致的观察。

题目描述

小 Z 拿到了一个二维矩阵。底面可以看作一个 n×mn \times m 的方格纸。

在每一个格子上,可以放任意个方块。由于有地心引力,方块不会悬空,且不会用胶水粘住。

他给出了这个三维矩阵的三视图,请你构造一个方块组,满足以下条件:

对于每一行、每一列,最多只有一个“”出现。特别地,底层矩阵的周围的高度被视为 00。如 12321 是一个“峰”,而 13231 有两个“峰”。

再举一些例子:

方块排列 “峰”的数量
123\texttt{123} 11
212\texttt{212} 22
122221\texttt{122221} 11
00011000\texttt{00011000}
10010101\texttt{10010101} 44

求出需要最少方块的矩阵。如果无解,请输出 -1

输入格式

第一行两个整数:n,mn,m

第二行 nn 个整数:左视图,第 ii 个整数表示左视图中第 ii 列的方块个数。

第三行 mm 个整数:主视图,第 jj 个整数表示主视图中第 jj 列的方块个数。

接下来 nn 行,每行 mm 个整数:俯视图,其中 0 表示没有方块,1 表示有方块。

输出格式

如果无解,则输出 -1

否则输出共 nn 行,每行 mm 个非负整数,为构造的三维矩阵的俯视图,其中第 ii 行第 jj 个整数表示该位置上的方块个数。

请确保按照输出格式输出,否则可能导致 SPJ 返回 UKE 等结果。

3 3
2 2 2
2 2 2
0 1 0
1 1 1
0 1 0
0 2 0 
2 2 2 
0 2 0 

提示

数据范围

本题各部分测试点采用捆绑测试。

对于 20%20\% 的数据:给出输入文件,程序打表输出答案,见附件 easy.zip

对于 100%100\% 的数据:n×m25n\times m\leq25。在俯视图中每个格子上最多有 7×1087\times10^8 个方块,且在俯视图中 1 的个数 20\leq20