#P1961. 2024.8.30-ELM-第2题-小塔的矩阵

2024.8.30-ELM-第2题-小塔的矩阵

题目内容

小塔有一个nnmm列的矩阵,但是小塔忘记了矩阵每一个元素的具体数值,只记得每一行的异或和以及每一列的异或和,你能帮助小塔恢复矩阵吗?

输入描述

第一行输入两个整数n,mn,m1n,m10001≤n,m≤1000),表示矩阵的行数和列数。

第二行输入nn个整数a1,a2,...,ana_1,a_2,...,a_n(0ai1090≤a_i≤10^9),表示每一行的异或和。

第三行输入mm个整数b1,b2,...,bnb_1,b_2,...,b_n(0bi1090≤b_i≤10^9),表示每一列的异或和。

输出描述

​ 如果能恢复矩阵,在一行上输出YESYES,随后nn行,每行输出mm个整数matijmat_{ij}(0matij10180≤mat_{ij}≤10^{18}),表示矩阵的具体数值;否则,直接输出NONO

​ 可以证明,如果能恢复矩阵,一定存在一种解使得矩阵元素的值在00101810^{18}之间。

​ 如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。

样例1

输入

3 3
0 7 6
2 15 12

输出

YES
123
456
789

说明

矩阵每一行的异或和分别为{1+2+3=04+5+6=77+8+9=6\begin{cases}1+2+3=0\\4+5+6=7\\7+8+9=6\end{cases}, 矩阵的每一列的异或和分别$\begin{cases}1+4+7=2\\2+5+8=15\\3+6+9=12\end{cases}$符合条件。