J - Hugest Number 解説 /

実行時間制限: 2 sec / メモリ制限: 1024 MiB

配点 : 100 点

問題文

相異なる正整数 D_1,D_2 が与えられます。

十進表記がちょうど D_1 桁である正整数と、十進表記がちょうど D_2 桁である正整数をすべて考えます。

これらの整数を重複なくすべて使い、好きな順序で一列に並べます。並べた整数の通常の十進表記をこの順に区切り文字を入れずに連結して得られる整数を X とします。

X としてあり得る最大値を求めてください。ただし、答えはとても大きくなるので、998244353 で割ったあまりを求めてください。

T 個のテストケースについて答えてください。

制約

  • 1 \leq T \leq 1000
  • 1 \leq D_1 < D_2 \leq 10^{18}
  • 入力される数値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

T
\mathrm{case}_1
\mathrm{case}_2
\vdots
\mathrm{case}_T

各テストケースは以下の形式で与えられる。

D_1 D_2

出力

各テストケースについて、答えを出力せよ。


入力例 1

4
1 2
1 3
2 3
333333333259845632 999999999779536896

出力例 1

682115319
588022100
745765835
0

1 番目のテストケースでは、1 桁の正整数 1,2,\ldots,9 と、2 桁の正整数 10,11,\ldots,99 をすべて並べます。

最大値を得る並べ方の一例は、まず 2 桁の正整数を 99,98,\ldots,10 の順に並べ、各 d=1,2,\ldots,9 について 11d の直前に d を挿入することで得られます。この並べ方によって得られる整数 X は、X=9999897 \ldots 1211110 となります。この X を 998244353 で割ったあまりは 682115319 です。

4 番目のテストケースでは、最大値を 998244353 で割ったあまりは 0 です。