AT_arc226_e [ARC226E] Cellular Messenger

Description

> すぬけ君は、あるマスに $ N $ ターンにわたり書き込まれる $ 01 $ 列を離れたマスへ伝えるセル・オートマトンを設計したいと考えました。 #### 1. グリッド 無限に広がるグリッドがあります。 各マスは $ 0 $ または $ 1 $ のいずれかの状態を持ちます。 グリッド上のある行を $ 0 $ 行目、ある列を $ 0 $ 列目とし、行番号は下向きに、列番号は右向きに $ 1 $ ずつ増えるように定めます。 $ r $ 行目、 $ c $ 列目のマスの座標を $ (r,c) $ と表します。 各マスの座標は下図のようになります。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_arc226_e/630cf583cd5c0d567bfe49a082f0c02932677a4ed61c84cecd428d89943926f8.png) また、あるマスに隣接するマスとは、辺または頂点を共有する $ 8 $ マスを指します。 あなたは、以下の条件を満たす矩形領域を選び、領域内のマスの初期状態を自由に設定することができます。 - 高さ $ H $ と幅 $ W $ がいずれも $ 1 $ 以上 $ 150 $ 以下である - 左上のマスの座標が $ (0,0) $ である 領域外のマスの初期状態は全て $ 0 $ とします。 #### 2. 更新操作 各 $ i=0,1 $ と $ j=0,1,\ldots,8 $ に対する $ 0 $ または $ 1 $ の値 $ F_{i,j} $ を決め、これらの値を**更新規則**とします。ただし、 $ F_{0,0}=0 $ である必要があります。 **更新操作**では、全てのマスの状態を同時に更新します。 あるマスについて、更新前の状態を $ i $ 、隣接する $ 8 $ マスの状態の総和を $ j $ とすると、更新後の状態は $ F_{i,j} $ となります。 #### 3. オートマトンの設計 あなたは以下の値を決め、出力する必要があります。 - 更新規則 $ F_{i,j} $ $ (i=0,1) $ $ (0 \le j \le 8) $ - $ F_{0,0}=0 $ でなければならない - 初期状態を設定する矩形領域の高さ $ H $ と幅 $ W $ - $ H, W $ はいずれも $ 1 $ 以上 $ 150 $ 以下でなければならない - 矩形領域内の初期状態 $ A_{r,c} $ $ (0 \le r \lt H) $ $ (0 \le c \lt W) $ - **送信マス**の座標 $ (R_s,C_s) $ と**受信マス**の座標 $ (R_t,C_t) $ - $ 0 \le R_s,R_t \lt H $ かつ $ 0 \le C_s,C_t \lt W $ でなければならない - $ 50 \le |C_s-C_t| \le 100 $ でなければならない - 送信から受信までの遅延 $ D $ - $ k $ ターン目に送信マスに書き込んだ値を、 $ k+D-1 $ ターン目に受信マスで読み取れるようにしなければならない - $ 50 \le D \le 100 $ でなければならない #### 4. ジャッジ方法 以下の手順でジャッジを行います。 1. 正整数 $ N $ と、 $ 0 $ と $ 1 $ からなる長さ $ N $ の数列 $ S=(S_1,S_2, \ldots ,S_N) $ を決める。これらはテストケースごとに固定である。 2. あなたが出力したオートマトンの設計を受け取る。 3. 空の数列 $ T $ を用意し、初期状態から $ N+D-1 $ ターンのシミュレーションを行う。 具体的には、各 $ k=1,2,\ldots,N+D-1 $ について、 $ k $ ターン目には以下の処理を順に行う。 1. $ k \le N $ ならば、送信マス $ (R_s,C_s) $ の状態を $ S_k $ に変更する。 2. グリッドに対して $ 1 $ 回の更新操作を行う。 3. $ D \le k < D+N $ ならば、受信マス $ (R_t,C_t) $ の状態を $ T $ の末尾に追加する。 4. シミュレーションの終了後、 $ S=T $ ならば正解、そうでなければ不正解となる。 $ N,S $ によらず正解となるオートマトンの設計が存在することは保証されますが、この問題ではジャッジの実装上、 $ N $ および $ S $ はテストケースファイルごとに固定されており、 $ N $ が $ 300 $ 以下のケースでのみジャッジされます。

Input Format

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

Output Format

以下の形式で出力せよ。 > $ F_{0,0}F_{0,1}\ldots F_{0,8} $ $ F_{1,0}F_{1,1}\ldots F_{1,8} $ $ H $ $ W $ $ A_{0,0}A_{0,1}\ldots A_{0,W-1} $ $ A_{1,0}A_{1,1}\ldots A_{1,W-1} $ $ \vdots $ $ A_{H-1,0}A_{H-1,1}\ldots A_{H-1,W-1} $ $ R_s $ $ C_s $ $ R_t $ $ C_t $ $ D $ 出力は、以下の条件を満たす必要があります。 - $ F_{i,j} \in \{0,1\} $ - $ F_{0,0} = 0 $ - $ 1 \le H,W \le 150 $ - $ A_{r,c} \in \{0,1\} $ - $ 0 \le R_s,R_t \lt H $ - $ 0 \le C_s,C_t \lt W $ - $ 50 \le |C_s-C_t| \le 100 $ - $ 50 \le D \le 100 $ あなたの出力が条件を満たし、かつ用意された全てのテストケースについて上記のジャッジ方法で正解となった場合、この問題を正解したと見なされる。

Explanation/Hint

### ビジュアライザ 出力したオートマトンの動作は、[ビジュアライザ](https://img.atcoder.jp/arc226/29f8bd059c31e5e1518610851ed9629d.html)で確認することができます。 ### Sample Explanation 1 この出力例は出力形式の確認のためのものです。 $ N=1 $ については全ての $ S $ について正解となりますが、 $ 2 \le N $ については不正解となる $ S $ が存在します。 ### Constraints - ジャッジで使用される $ N $ は $ 1 $ 以上 $ 300 $ 以下