#647. 文字列

文字列

题目描述

给定三个字符串 S1,S2,S3S_1, S_2, S_3,每个字符串均由小写英文字母组成。请你计算有多少个长度为 NN 的字符串 TT(同样仅由小写英文字母组成),使得 S1,S2,S3S_1, S_2, S_3 都不会作为 TT 的子序列出现。请将结果对 998244353998244353 取模后输出。

输入格式

第一行输入一个整数 NN

第二行输入三个字符串 S1S_1 S2S_2 S3S_3

输出格式

输出一个整数,表示长度为 NN 的,仅由小写英文字母组成,且 S1,S2,S3S_1, S_2, S_3 都不会作为子序列出现的字符串 TT 的数量,对 998244353998244353 取模。

2
abc de f
624
4
ab ab ab
453125
1000
atcoder algorithm lectures
669410767

提示

样例 1 解释

共有 676676 个长度为 22 的字符串,由小写英文字母组成。其中有 11 个字符串包含 S2=deS_2 = \texttt{de},有 5151 个字符串包含 S3=fS_3 = \texttt{f}。这两类字符串不会相互重叠。因此答案为 676151=624676 - 1 - 51 = 624

数据范围

  • 对于 20%20\% 的数据满足:1N31 \leq N \leq 3
  • 对于 40%40\% 的数据满足:S1=S2=S3=1|S_1|=|S_2|=|S_3|=1
  • 对于 100%100\% 的数据满足:1N1031 \leq N \leq 10^3

对于所有的数据保证 S1,S2,S3S_1, S_2, S_3 是非空字符串,由小写英文字母组成,长度不超过 1010