AT_gigacode_2019_h 論理回路の構成
Description
[problemUrl]: https://atcoder.jp/contests/gigacode-2019/tasks/gigacode_2019_h
$ N $ 個のスイッチがあり,それぞれスイッチ $ 1,\ 2,\ 3,\ ...,\ N $ と番号付けられています.各スイッチは,0 か 1 のいずれか二通りの状態を持ちます.
さて,あなたは番号 $ N+1,\ N+2,\ ...,\ N+M $ がついた $ M $ 個のメモリを使って,回路を作ることができます.($ M $ の値は自由に決められます.)
メモリには,以下の $ 4 $ 種類があります.以下の説明では,該当するメモリの番号を $ x $ としています.
**① AND メモリ**
2 つのスイッチ/メモリから繋がっており,これらを番号 $ u,\ v $ $ (u\
Input Format
入力は以下の形式で標準入力から与えられます.
(☆) $ T\ =\ 1 $ のとき
> 1 $ N $ $ K $
ただし,$ N $ はスイッチの個数,$ K $ は番号 $ N+M $ のスイッチ($ M=0 $ の場合メモリ)の値が 1 であるべき状態の通り数を意味します.
(★) $ T\ =\ 2 $ のとき
> 2 $ N $ $ K $ $ S_1 $ $ S_2 $ $ S_3 $ $ : $ $ S_K $
ここでは,$ S_i $ は番号 $ N+M $ のスイッチ ($ M=0 $ の場合メモリ) の値が 1 であるべき状態のうち,$ i $ 番目のものです.
$ S_i $ は $ N $ 文字の文字列で表され,$ i $ 文字目が `0` である場合は $ i $ 番目のスイッチの状態が 0 である,$ i $ 文字目が `1` である場合は $ i $ 番目のスイッチの状態が 1 であることを意味します.
例えば,$ N\ =\ 4 $ で $ S_i\ = $`0101` の場合,スイッチ $ 2,\ 4 $ が 1 であり,スイッチ $ 1,\ 3 $ が 0 であるような状態のことを表します.
Output Format
以下のように,論理回路の構成方法を出力してください.
> $ M $ (番号 $ N+1 $ のメモリの情報) (番号 $ N+2 $ のメモリの情報) (番号 $ N+3 $ のメモリの情報) $ : $ (番号 $ N+M $ のメモリの情報)
番号 $ x $ のメモリの情報は,以下のように出力してください.
**AND メモリの場合**
> AND $ u $ $ v $
これは,番号 $ u $ と $ v $ のスイッチ/メモリから,番号 $ x $ のメモリに繋がっていることを表します.$ u\
Explanation/Hint
### 制約
- $ 1\ \leq\ T\ \leq\ 2 $
- $ 2\ \leq\ N\ \leq\ 10 $
- $ 1\ \leq\ K\ \leq\ 2^{N}-1 $
- $ T,\ N,\ K $ は整数
### 小課題・得点
この問題には,$ 2 $ つの小課題があります.
1. (30 点) $ T\ =\ 1 $.
2. (70 点) $ T\ =\ 2 $.
小課題 1 において,各テストケースに対して以下のように得点が定められます.この小課題の全部のテストケースに対する最低得点がこの小課題の得点となります.
- $ 2^{N}×4N\