C - Multiplication Table
問題文
整数 $N, M$ が与えられます。次の条件を満たす $N \times N$ 行列 $A$ を出力してください。
条件
行列 $A$ の上から $i$ 行目、左から $j$ 列目の要素を $A_{i, j}$ とする。
このとき、$A_{i, j} = (M + i - 1) \times (M + j - 1)$
$A_{i, j}$ は非常に大きくなる可能性があるので、各要素について下 $2$ 桁を出力してください。なお、$A_{i,j}$ が $1$ 桁の場合、先頭に $0$ をつけてください。
制約
Hard (100点)
- $1 \le N \le 100$
- $0 \le M \lt {10}^{100000}$
- 入力はすべて整数
Easy (50点)
- Hard の制約に以下の制約を追加
- $1 \le N \le 6$
- $4 \le M \le 10 - N$
部分点のみ解答したい場合
部分点のみを解答したい場合、問題によっては結果が TLE となるケースが大量に発生し、ジャッジに時間がかかる可能性があります。
C++の assert
関数やPythonの assert
文などを用いて、変数の値によってプログラムを強制終了させる処理を書き加えることで TLE を防ぎ、より早く結果を得ることができます。
入力
入力は以下の形式で標準入力から与えられます。
$N \ \ M$
出力
$N$ 行出力してください。
$i$ 行目には $N$ 個の文字列を出力してください。$j$ 個目には $A_{i, j}$ の下 $2$ 桁を出力してください。
詳しくは入出力例も参考にしてください。
4 4
16 20 24 28
20 25 30 35
24 30 36 42
28 35 42 49
例えば、$A_{2, 3} = (4 + 2 - 1) \times (4 + 3 - 1) = 30$ なので、下 $2$ 桁の $30$ を出力してください。
この入出力例は Easy・Hard の制約を満たします。
3 9
81 90 99
90 00 10
99 10 21
例えば、$A_{2, 2} = (9 + 2 - 1) \times (9 + 2 - 1) = 100$ なので、下 $2$ 桁の $00$ を出力してください。
この入出力例は Hard の制約を満たします。
5 12345678901234567890
00 90 80 70 60
90 81 72 63 54
80 72 64 56 48
70 63 56 49 42
60 54 48 42 36
例えば、$A_{4, 3} = 152{,}415{,}787{,}532{,}388{,}367{,}563{,}633{,}594{,}381{,}191{,}891{,}556$ なので、下 $2$ 桁の $56$ を出力してください。
$M$ が $64$ ビット整数型に収まらない場合があることに注意してください。
この入出力例は Hard の制約を満たします。
2 1
01 02
02 04
この入力例は Hard の制約を満たします。