#1504. [L3-2] 超级恶臭字符串

内存限制:512 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: hwpvector

题目描述

若两个字符串 S=s1s2snS=s_1s_2\cdots s_nT=t1t2tmT=t_1t_2\cdots t_m 完全相同,即 n=mn=m,且对于任意的 1in1\le i\le n 都有 si=tis_i=t_i,则我们记 S=TS=T. 否则,我们记 STS\not= T.

若有两个字符串 S=s1s2snS=s_1s_2\cdots s_nT=t1t2tmT=t_1t_2\cdots t_m,我们记这两个字符的拼接为 S+T=s1s2snt1t2tmS+T=s_1s_2\cdots s_n t_1t_2\cdots t_m.

若有一个字符串 S=s1s2snS=s_1s_2\cdots s_n,我们记其子串 S[l,r]=slsl+1srS[l,r]=s_{l}s_{l+1}\cdots s_r.

我们称一个字符串 SS 的恶臭程度为 f(S)f(S),表示将 SS 分割 77 个字符串 S1,S2,,S7S_1,S_2,\cdots,S_7,且这 77 个字符串满足如下性质的方案数

  • S=S1+S2++S7S=S_1+S_2+\cdots +S_7.

  • S1=S3=S6S_1=S_3=S_6.

  • S2=S4S_2=S_4.

  • S1,S2,S7S_1,S_2,\cdots S_7 不能为空串.

对于两个分割 S1,S2,S7S_1,S_2,\cdots S_7S1,S2,,S7S'_1,S'_2,\cdots,S'_7,只要存在一个 ii1i71\le i\le 7)使得 SiSiS_i\not= S'_i,则视为两个不同的分割方案.

例如,1919810\texttt{1919810} 就是一个恶臭程度为 11 的字符串,因为其可以分割为 S1=1S_1=\texttt{1}S2=9S_2=\texttt{9}S3=1S_3=\texttt{1}S4=9S_4=\texttt{9}S5=8S_5=\texttt{8}S6=1S_6=\texttt{1}S7=0S_7=\texttt{0},满足之前所述的条件,并且不存在其他分割方式.

定义一个长度为 nn 的字符串 SS 的超级恶臭程度 g(S)g(S),为 SS 的所有子串的恶臭程度之和. 即:

g(S)=l=1nr=lnf(S[l,r])g(S)=\sum_{l=1}^n\sum_{r=l}^n f(S[l,r])

给定一个字符串 SS,求其超级恶臭程度 g(S)g(S),对 998244353 取模的结果.

输入格式

第一行包含一个正整数 nn,表示字符串 SS 的长度.

第二行包含一个字符串 SS. 保证 SS 仅由数字 09\texttt{0}\sim \texttt{9} 构成.

输出格式

输出一行,包含一个整数,表示 g(S)g(S) 的超级恶臭程度,对 998244353 取模的结果.

样例

输入样例 1

7
1919810

输出样例 1

1

输入样例 2

11
11011011110

输出样例 2

12

数据范围与提示

7n50007\le n\le 5000

保证字符串 SS 仅由数字 09\texttt{0}\sim \texttt{9} 构成.