AT_xmascon17_i SAT Puzzle

Description

[problemUrl]: https://atcoder.jp/contests/xmascon17/tasks/xmascon17_i 以下のパズルをSATで解いてください。 - $ 6*6 $ のマス目が与えられる。いくつかのマスは黒マスであり、それ以外は白マスである。 - 白マスをいくつか黒マスに変え、以下の条件を満たすようにせよ。 - 白マスの連結成分がちょうど $ 4 $ つ存在し、いずれもサイズは $ 4 $ である。 下図の例題も参考にしてください。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_xmascon17_i/c8a288c129e53ed025d0b2a501939c1c2d793e4f.png)図1:例題 後々のためにマスには以下のように番号をつけておきます。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_xmascon17_i/7434aa7b5e58c9155bf6c71e8cadc0799e609869.png)図2:マスの番号付け #### 解答方法 あなたはこのパズルを解くための以下のような[CNF](https://ja.wikipedia.org/wiki/%E9%80%A3%E8%A8%80%E6%A8%99%E6%BA%96%E5%BD%A2)を提出してください。 - 論理変数は $ x_1,\ x_2,\ ...,\ x_{1000} $ のみを用いる。 - 式を充足する真偽値の割り当てに対し、$ x_i\ (1\ \leq\ i\ \leq\ 36) $ がパズルの解答の盤面におけるマス $ i $ の色を表す。$ x_i $ が真の場合マス $ i $ は黒であり、偽の場合は白である。 #### ジャッジ方法 ジャッジは以下のように行われます。 - 提出のCNFに以下のような節を追加する。 - テストケースのパズルの初期盤面でマス $ i $ が黒く塗られているとき、$ (x_i) $ という節を追加する。(これにより、$ x_i $ は必ず真となる。) - CNFの充足可能性を判定する。充足不可能であった場合ジャッジ結果は `WA` となる。また、この判定に $ 30 $ 秒以上かかった場合は `IE` となる。 - 充足可能な場合は真偽値の割り当てを $ 1 $ つ見つけ、各 $ i\ (1\ \leq\ i\ \leq\ 36) $ について、$ x_i $ が真の場合マス $ i $ を黒マスにし、偽の場合は白マスにする。 - 得られた盤面がパズルの解として正しいかどうかを判定する。正しければジャッジ結果は `AC` となり、正しくなければ `WA` となる。 テストケースは $ 10 $ ケースあり、全てに正解すると `AC` となります。 [こちらのgist](https://gist.github.com/snuke/6635dd1ef944112ba5195856c4555bb4) にジャッジのソースコードをuploadしてあるので、デバッグ等にご利用ください。

Input Format

この問題では入力は与えられない。

Output Format

$ i $ 行目に $ i $ 番目の節の情報を出力し、最後の行に $ 0 $ を出力せよ。 各節の出力方法は [minisat](https://www.dwheeler.com/essays/minisat-user-guide.html) を参考にせよ。 例えば $ (x_1\ \lor\ x_2)\ \land\ (\lnot\ x_1\ \lor\ x_2\ \lor\ \lnot\ x_3) $ というCNFの場合は以下のように出力すれば良い。 ``` 1 2 0 -1 2 -3 0 0 ``` #### 注意点 以下の点に注意せよ。 - リテラルには $ x_1 $ から $ x_{1000} $ までしか使ってはいけない - 空の節を入れてはならない。($ 0 $ のみが行に出力され、出力の終端だと判定されてしまうため)