これは出力専用問題です。つまり、テストケースは手元で利用可能であり、プログラムを提出する代わりに、自身のマシンで計算した答えをテキストファイルとして提出します。
Busy Beaverは締め切りの数時間前に数学の宿題を始めました(皆さんは真似しないでください!)。宿題には $100$ 問の問題があります。コンテスト終了までに、Busy Beaverは何問解くことができるでしょうか?
各問題は連立方程式のセットです(方程式がどのような形式であるかの詳細は入力形式を参照してください)。課題は、これらのセットのうち可能な限り多くのセットに対して正の整数解を見つけることです。各セットは1点であり、合計で $100$ 点満点です。
入力
添付ファイルからテストデータをダウンロードしてください。
各方程式セットは、1行の2つの数値で始まります。それは方程式に含まれる変数の数 $N$(アルファベットの最初の $N$ 文字で表されます)と、方程式の数 $K$ です。これに続いて、各方程式が1行ずつ、計 $K$ 行続きます。
方程式の左辺の各項は、単純に [1000以下の正の整数係数][最大6個の変数のリスト] という形式で記述されます。左辺は常に最大 $20$ 個のこれらの項の和(プラス記号で区切られます。負の係数を持つ項は存在しません)であり、右辺は常に正の整数です。指数は使用されません。例えば、$a^2bc$ は aabc や caab のように記述されることがあります。
すべての方程式セットには、すべての変数が $10^{12}$ を超えない解が存在します。 方程式は単純なランダム手法を用いて生成されており、いかなるアルゴリズムにおいても最悪のケースを引き起こすことを意図したものではありません。
出力
まず、解いた方程式の数 $A$ ($1 \le A \le 100$) を1行に出力します。
次に、$A$ 行にわたって、解いたセットのインデックス($1$ から $100$ まで)と、それに続くスペース区切りの正の整数のリスト(アルファベット順の変数の値)を出力します。
例えば、方程式セット $5$ を解き、答えが $a = 1234, b = 5678$ であり、方程式セット $10$ を解き、答えが $a = 123, b = 456, c = 789$ であった場合、出力ファイルは以下のようになります。
2 5 1234 5678 10 123 456 789
各方程式セットはインデックスとして最大1回までしかリストできません。$A$ 個の解は特定の順序である必要はありません(セット $10$ の解をセット $5$ の解の前に出力しても構いません)。複数の解が存在する場合、すべての変数が $10^{18}$ 以下である任意の解を出力してください(ただし前述の通り、すべてのセットにはすべての変数が $10^{12}$ 以下の解が存在します)。
採点
出力形式が無効である場合、または提供した方程式セットの解が誤っている場合、得点は0点となります。それ以外の場合、あなたは $A$ 点を獲得します。
アルゴリズムの設計を支援するために、以下の $100$ 個の方程式セットに関する情報を含む表を提供します。ここで $M$ は、そのセットがすべての変数において $M$ 以下の解を持つような数値です。
- セット 1-2: $N = 1$, $K = 1$, $M = 10$
- セット 3-7: $N = 1$, $K = 1$, $M = 10^{12}$
- セット 8-9: $N = 2$, $K = 2$, $M = 10^{3}$
- セット 10-12: $N = 2$, $K = 2$, $M = 10^{6}$
- セット 13-20: $N = 2$, $K = 2$, $M = 10^{12}$
- セット 21-24: $N = 3$, $K = 3$, $M = 10^{3}$
- セット 25-33: $N = 3$, $K = 3$, $M = 10^{6}$
- セット 34-40: $N = 3$, $K = 3$, $M = 10^{12}$
- セット 41-57: $N = 3$, $K = 2$, $M = 10^{7}$
- セット 58-60: $N = 2$, $K = 1$, $M = 10^{7}$
- セット 61-70: $N = 2$, $K = 1$, $M = 10^{9}$
- セット 71-83: $N = 2$, $K = 1$, $M = 10^{10}$
- セット 84-92: $N = 2$, $K = 1$, $M = 10^{11}$
- セット 93-100: $N = 2$, $K = 1$, $M = 10^{12}$