AT_abc164_f [ABC164F] I hate Matrix Construction
Description
[problemUrl]: https://atcoder.jp/contests/abc164/tasks/abc164_f
整数 $ N $ 及び長さ $ N $ の配列 $ S $, $ T $, $ U $, $ V $ が与えられます。 以下の条件を満たすような $ N×N $ の行列 $ a $ をどれか $ 1 $ つ構築してください。
- $ a_{i,j} $ は整数である。
- $ 0\ \leq\ a_{i,j}\ \lt\ 2^{64} $
- $ S_{i}\ =\ 0 $ のとき $ i $ 行目の要素のビットごとの論理積は $ U_{i} $ である。
- $ S_{i}\ =\ 1 $ のとき $ i $ 行目の要素のビットごとの論理和は $ U_{i} $ である。
- $ T_{i}\ =\ 0 $ のとき $ i $ 列目の要素のビットごとの論理積は $ V_{i} $ である。
- $ T_{i}\ =\ 1 $ のとき $ i $ 列目の要素のビットごとの論理和は $ V_{i} $ である。
ただし、条件を満たす行列が存在しない場合もあるかもしれません。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S_{1} $ $ S_{2} $ $ ... $ $ S_{N} $ $ T_{1} $ $ T_{2} $ $ ... $ $ T_{N} $ $ U_{1} $ $ U_{2} $ $ ... $ $ U_{N} $ $ V_{1} $ $ V_{2} $ $ ... $ $ V_{N} $
Output Format
条件を満たす行列が存在する場合は、そのような行列 $ 1 $ つを以下の形式で出力せよ。
> $ a_{1,1} $ $ ... $ $ a_{1,N} $ $ : $ $ a_{N,1} $ $ ... $ $ a_{N,N} $
条件を満たす行列なら何を出力してもいいことに注意せよ。
条件を満たす行列が存在しない場合は $ -1 $ を出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数
- $ 1\ \leq\ N\ \leq\ 500 $
- $ 0\ \leq\ S_{i}\ \leq\ 1 $
- $ 0\ \leq\ T_{i}\ \leq\ 1 $
- $ 0\ \leq\ U_{i}\ \lt\ 2^{64} $
- $ 0\ \leq\ V_{i}\ \lt\ 2^{64} $
### Sample Explanation 1
入力例 $ 1 $ では - $ 1 $ 行目の要素のビットごとの論理積が $ 1 $ - $ 2 $ 行目の要素のビットごとの論理和が $ 1 $ - $ 1 $ 列目の要素のビットごとの論理和が $ 1 $ - $ 2 $ 列目の要素のビットごとの論理積が $ 0 $ の条件を満たす行列を見つける必要があります。