atcoder#ABC219E. [ABC219E] Moat

[ABC219E] Moat

配点 : 500500

問題文

xyxy -平面上のいくつかの点に村があります。 高橋君はこれらの村を民兵や魔女などの外敵から守るため、これらのすべての村を囲むようなお堀を建設します。

0011 からなる 4×44 \times 4 行列 A=(Ai,j)A = (A_{i, j}) が与えられます。 Ai,j=1A_{i, j} = 1 を満たす整数の組 (i,j)(i, j) (1i,j4)(1 \leq i, j \leq 4) ごとに、座標 (i0.5,j0.5)(i-0.5, j-0.5) に村があります。

お堀は平面上の多角形です。 高橋君は以下の条件をすべて満たすお堀を建設します(入力例1・出力例1の説明も参考にして下さい)。

  1. 自己交差がない
  2. 内部にすべての村を含む
  3. すべての頂点の xx 座標と yy 座標は 00 以上 44 以下の整数
  4. すべての辺は xx 軸と yy 軸のどちらかに平行
  5. それぞれの内角の大きさは 9090 度または 270270

高橋君が建設するお堀として考えられるものが何通りあるかを出力して下さい。

制約

  • Ai,j{0,1}A_{i, j} \in \lbrace 0, 1\rbrace
  • Ai,j=1A_{i, j} = 1 となる (i,j)(i, j) が少なくとも 11 つ存在する

入力

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

A1,1A_{1, 1} A1,2A_{1, 2} A1,3A_{1, 3} A1,4A_{1, 4}

A2,1A_{2, 1} A2,2A_{2, 2} A2,3A_{2, 3} A2,4A_{2, 4}

A3,1A_{3, 1} A3,2A_{3, 2} A3,3A_{3, 3} A3,4A_{3, 4}

A4,1A_{4, 1} A4,2A_{4, 2} A4,3A_{4, 3} A4,4A_{4, 4}

出力

高橋君が建設するお堀として考えられるものが何通りあるかを出力せよ。

1 0 0 0
0 0 1 0
0 0 0 0
1 0 0 0
1272

下記の 22 つの画像の例は、高橋君が建設するお堀の条件を満たします

下記の 44 つの画像の例は、高橋君が建設するお堀の条件を満たしません

上記の 44 つの例が高橋君の建設するお堀の条件を満たさない理由は、以下の通りです。

  • 11 つ目の画像の例は、「自己交差がない」という条件を満たしません。
  • 22 つ目の画像の例は、「内部にすべての村を含む」という条件を満たしません。
  • 33 つ目の画像の例は、「すべての頂点の xx 座標と yy 座標は 00 以上 44 以下の整数」という条件を満たしません。(座標が整数でない頂点があります。)
  • 44 つ目の画像の例は、「すべての辺は xx 軸と yy 軸のどちらかに平行」という条件を満たしません。
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
1