atcoder#ABC242E. [ABC242E] (∀x∀)

[ABC242E] (∀x∀)

配点 : 500500

問題文

TT 個のテストケースについて、次の問題を解いてください。

整数 NN と文字列 SS が与えられるので、以下の条件を全て満たす文字列 XX の数を 998244353998244353 で割った余りを求めてください。

  • XX は英大文字のみからなる長さ NN の文字列
  • XX は回文
  • 辞書順で XSX \le S- すなわち、 X=SX=S であるか、辞書順で XXSS より前に来る

制約

  • 1T2500001 \le T \le 250000
  • NN11 以上 10610^6 以下の整数
  • ひとつの入力について、含まれるテストケースの NN の総和は 10610^6 を超えない
  • SS は英大文字のみからなる長さ NN の文字列

入力

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

TT

case1\mathrm{case}_1

case2\mathrm{case}_2

\vdots

caseT\mathrm{case}_T

ただし、 casei\mathrm{case}_iii 個目のテストケースを表す。

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

NN

SS

出力

全体で TT 行出力せよ。 ii 行目には ii 個目のテストケースに対する答えを整数として出力せよ。

5
3
AXA
6
ABCZAZ
30
QWERTYUIOPASDFGHJKLZXCVBNMQWER
28
JVIISNEOXHSNEAAENSHXOENSIIVJ
31
KVOHEEMSOZZASHENDIGOJRTJVMVSDWW
24
29
212370247
36523399
231364016

この入力には 55 個のテストケースが含まれます。

11 個目のテストケース: 問題文中の条件を満たす文字列は AAA,, ABA,, ACA,...,,..., AXA2424 個です。

22 個目のテストケース: SS が回文であるとは限りません。

33 個目のテストケース: 998244353998244353 で割った余りを求めることに注意してください。