atcoder#ABC276H. [ABC276Ex] Construct a Matrix

[ABC276Ex] Construct a Matrix

配点 : 600600

問題文

以下の条件を満たす NNNN 列の行列 XX が存在するかどうかを判定し、存在する場合は 11 つ示してください。( XX の上から ii 行目、左から jj 列目の要素を xi,jx_{i,j} とします)

  • すべての i,j(1i,jN)i,j(1 \leq i,j \leq N) に対し、xi,j{0,1,2}x_{i,j} \in \{ 0,1,2 \}
  • i=1,2,,Qi=1,2,\ldots,Q それぞれに対し次の条件が成立する。- $P = \prod_{a_i \leq j \leq b_i} \prod_{c_i \leq k \leq d_i} x_{j,k}$ とする。この時、PP33 で割った余りは eie_i に等しい。
  • $P = \prod_{a_i \leq j \leq b_i} \prod_{c_i \leq k \leq d_i} x_{j,k}$ とする。この時、PP33 で割った余りは eie_i に等しい。

制約

  • 1N,Q20001 \leq N,Q \leq 2000
  • 1aibiN1 \leq a_i \leq b_i \leq N
  • 1cidiN1 \leq c_i \leq d_i \leq N
  • ei{0,1,2}e_i \in \{0,1,2 \}
  • 入力はすべて整数

入力

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

NN QQ

a1a_1 b1b_1 c1c_1 d1d_1 e1e_1

\vdots

aQa_Q bQb_Q cQc_Q dQd_Q eQe_Q

出力

条件を満たす XX が存在しないならば No と出力せよ。

条件を満たす XX が存在するならば 11 行目に Yes と出力し、22 行目以降に以下の形式で XX の一例を出力せよ。

x1,1x_{1,1} x1,2x_{1,2} \ldots x1,Nx_{1,N}

x2,1x_{2,1} x2,2x_{2,2} \ldots x2,Nx_{2,N}

\vdots

xN,1x_{N,1} xN,2x_{N,2} \ldots xN,Nx_{N,N}

条件を満たす XX が複数存在する場合、どれを出力しても良い。

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

例えば i=2i=2 に対し、$P = \prod_{a_2 \leq j \leq b_2} \prod_{c_2 \leq k \leq d_2} x_{j,k}= \prod_{1 \leq j \leq 2} \prod_{2 \leq k \leq 2} x_{j,k}=x_{1,2} \times x_{2,2}$ です。 この出力例において x1,2=2,x2,2=2x_{1,2}=2, x_{2,2}=2 なので P=2×2=4P=2 \times 2 = 4 であり、これを 33 で割った余りは e2=1e_2=1 に等しいです。 i=1,3i=1,3 に対しても同様に条件を満たすことを確認できます。

4 4
1 4 1 4 0
1 4 1 4 1
1 4 1 4 2
1 4 1 4 0
No