TUATPC2024Summer (Algorithm)
コンテスト日時
2024/09/26 (Th) 20:00 - 23:00

C - Multiplication Table

Assam
2
s
1024
MB
150

問題文

整数 $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$ 桁を出力してください。

詳しくは入出力例も参考にしてください。

入力例 1
4 4
出力例 1
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 の制約を満たします。

入力例 2
3 9
出力例 2
81 90 99 90 00 10 99 10 21

例えば、$A_{2, 2} = (9 + 2 - 1) \times (9 + 2 - 1) = 100$ なので、下 $2$ 桁の $00$ を出力してください。

この入出力例は Hard の制約を満たします。

入力例 3
5 12345678901234567890
出力例 3
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 の制約を満たします。

入力例 4
2 1
出力例 4
01 02 02 04

この入力例は Hard の制約を満たします。

提出
C++23 (g++ 12.2.0)