Palindromic Substring

2 secs 1024 MB
bayashiko's icon bayashiko

問題文

長さが NN の英小文字からなる文字列 SS が与えられます。

SS の空でない連続部分文字列 SS'として考えられるもの全てについて以下の値を求め、それらの総和を答えてください。

  • SS' の空でない連続部分文字列のうち、回文であるものの長さの総和

ただし、各連続部分文字列について、文字列として等しくても取り出した位置が異なるならば区別します。

また、答えは非常に大きくなることがあるので、答えを 998244353998244353 で割った余りを出力してください。

  

制約

  • 1N5×1051\leq N \leq 5×10^5
  • SS は英小文字からなる
  • NN は整数

  

入力

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

NN
SS

  

出力

答えを出力してください。

  

入力例1

3
aba

出力例1

13

aba の空でない連続部分文字列は abaabbaaba66 つです。

a の空でない連続部分文字列のうち回文であるものは a11 つで、長さの総和は 11 です。
b の空でない連続部分文字列のうち回文であるものは b11 つで、長さの総和は 11 です。
a の空でない連続部分文字列のうち回文であるものは a11 つで、長さの総和は 11 です。
ab の空でない連続部分文字列のうち回文であるものは ab22 つで、長さの総和は 1+1=21+1=2 です。
ba の空でない連続部分文字列のうち回文であるものは ba22 つで、長さの総和は 1+1=21+1=2 です。
aba の空でない連続部分文字列のうち回文であるものは abaaba44 つで、長さの総和は 1+1+1+3=61+1+1+3=6 です。

以上より、答えは 1+1+1+2+2+6=131+1+1+2+2+6=13 です。

入力例2

5
wakka

出力例2

55

入力例3

17
ushitapunichiakun

出力例3

969

ここにそのようなケースを置くことは出来ませんが、答えは非常に大きくなることがあるので 998244353998244353 で割った余りを出力することに注意してください。

Submit


Go (1.21)