题目描述
给定整数 N 和长度为 N 的数组 S、T、U 和 V。构造一个 N×N 矩阵 a,满足以下条件:
- ai,j 是一个整数。
- 0≤ai,j<264。
- 如果 Si=0,则第 i 行元素的按位与结果是 Ui。
- 如果 Si=1,则第 i 行元素的按位或结果是 Ui。
- 如果 Ti=0,则第 i 列元素的按位与结果是 Vi。
- 如果 Ti=1,则第 i 列元素的按位或结果是 Vi。
但是,可能存在无法满足条件的情况。
约束条件
- 输入中的所有值都是整数。
- 1≤N≤500
- 0≤Si≤1
- 0≤Ti≤1
- 0≤Ui<264
- 0≤Vi<264
输入格式
从标准输入获取输入,格式如下:
N
S1 S2 ... SN
T1 T2 ... TN
U1 U2 ... UN
V1 V2 ... VN
输出格式
如果存在满足条件的矩阵,则按以下格式之一输出其中之一:
a1,1 ... a1,N
:
aN,1 ... aN,N
请注意,只要满足条件的任何矩阵均被接受。
如果不存在满足条件的矩阵,则输出 −1。
示例输入1
2
0 1
1 0
1 1
1 0
示例输出1
1 1
1 0
在示例输入1中,我们需要找到一个矩阵满足以下条件:
- 第1行的元素按位与结果为1;
- 第2行的元素按位或结果为1;
- 第1列的元素按位或结果为1;
- 第2列的元素按位与结果为0。
示例输入2
2
1 1
1 0
15 15
15 11
示例输出2
15 11
15 11