atcoder#ABC164F. [ABC164F] I hate Matrix Construction

[ABC164F] I hate Matrix Construction

配点 : 600600

問題文

整数 NN 及び長さ NN の配列 SS, TT, UU, VV が与えられます。 以下の条件を満たすような N×NN \times N の行列 aa をどれか 11 つ構築してください。

  • ai,ja_{i,j} は整数である。
  • 0ai,j<2640 \leq a_{i,j} \lt 2^{64}
  • Si=0S_{i} = 0 のとき ii 行目の要素のビットごとの論理積は UiU_{i} である。
  • Si=1S_{i} = 1 のとき ii 行目の要素のビットごとの論理和は UiU_{i} である。
  • Ti=0T_{i} = 0 のとき ii 列目の要素のビットごとの論理積は ViV_{i} である。
  • Ti=1T_{i} = 1 のとき ii 列目の要素のビットごとの論理和は ViV_{i} である。

ただし、条件を満たす行列が存在しない場合もあるかもしれません。

制約

  • 入力は全て整数
  • 1N5001 \leq N \leq 500
  • 0Si10 \leq S_{i} \leq 1
  • 0Ti10 \leq T_{i} \leq 1
  • 0Ui<2640 \leq U_{i} \lt 2^{64}
  • 0Vi<2640 \leq V_{i} \lt 2^{64}

入力

入力は以下の形式で標準入力から与えられる。

NN

S1S_{1} S2S_{2} ...... SNS_{N}

T1T_{1} T2T_{2} ...... TNT_{N}

U1U_{1} U2U_{2} ...... UNU_{N}

V1V_{1} V2V_{2} ...... VNV_{N}

出力

条件を満たす行列が存在する場合は、そのような行列 11 つを以下の形式で出力せよ。

a1,1a_{1,1} ...... a1,Na_{1,N}

::

aN,1a_{N,1} ...... aN,Na_{N,N}

条件を満たす行列なら何を出力してもいいことに注意せよ。

条件を満たす行列が存在しない場合は 1-1 を出力せよ。

2
0 1
1 0
1 1
1 0
1 1
1 0

入力例 11 では

  • 11 行目の要素のビットごとの論理積が 11
  • 22 行目の要素のビットごとの論理和が 11
  • 11 列目の要素のビットごとの論理和が 11
  • 22 列目の要素のビットごとの論理積が 00

の条件を満たす行列を見つける必要があります。

2
1 1
1 0
15 15
15 11
15 11
15 11