#aBC324Cid245. C - Error Correction

C - Error Correction

AT_abc324_c [ABC324C] Error Correction

题目描述

高桥君向青木君发送了一个由小写英文字母组成的字符串 TT。结果,青木君收到了一个由小写英文字母组成的字符串 TT'

TT' 可能与 TT 有部分不同,具体来说,已知下列 44 种情况中恰好有一种成立:

  • TT'TT 完全相同。
  • TT' 是在 TT 的某一个位置(包括开头和结尾)插入一个小写英文字母后得到的字符串。
  • TT' 是从 TT 中删除某一个字符后得到的字符串。
  • TT' 是将 TT 的某一个字符替换为另一个小写英文字母后得到的字符串。

现在给定青木君收到的字符串 TT',以及 NN 个由小写英文字母组成的字符串 S1,S2,,SNS_1, S_2, \ldots, S_N,请找出所有有可能是高桥君发送的字符串 TTSiS_i

输入格式

输入以如下格式从标准输入读入:

NN TT'
S1S_1
S2S_2
\vdots
SNS_N

输出格式

将所有可能等于 TTS1,S2,,SNS_1, S_2, \ldots, S_N 的下标按升序排列,记为 (i1,i2,,iK)(i_1, i_2, \ldots, i_K)。请输出该序列的长度 KK 以及该序列本身,格式如下:

KK i1i_1 i2i_2 \ldots iKi_K

输入输出样例 #1

输入 #1

5 ababc
ababc
babc
abacbc
abdbc
abbac

输出 #1

4
1 2 3 4

输入输出样例 #2

输入 #2

1 aoki
takahashi

输出 #2

0

输入输出样例 #3

输入 #3

9 atcoder
atoder
atcode
athqcoder
atcoder
tacoder
jttcoder
atoder
atceoder
atcoer

输出 #3

6
1 2 4 7 8 9

说明/提示

限制条件

  • NN 是整数
  • 1N5×1051 \leq N \leq 5 \times 10^5
  • SiS_iTT' 均为长度不少于 11 且不超过 5×1055 \times 10^5 的小写英文字母字符串
  • S1,S2,,SNS_1, S_2, \ldots, S_N 的总长度不超过 5×1055 \times 10^5

样例解释 1

S1,S2,,S5S_1, S_2, \ldots, S_5 中,可能等于 TT 的有 S1,S2,S3,S4S_1, S_2, S_3, S_444 个,理由如下:

  • S1S_1 可能等于 TT,因为 T=ababcT' = \texttt{ababc}S1=ababcS_1 = \texttt{ababc} 完全相同。
  • S2S_2 可能等于 TT,因为 T=ababcT' = \texttt{ababc} 可以通过在 S2=babcS_2 = \texttt{babc} 的开头插入字符 a\texttt{a} 得到。
  • S3S_3 可能等于 TT,因为 T=ababcT' = \texttt{ababc} 可以通过从 S3=abacbcS_3 = \texttt{abacbc} 的第 44 个字符 c\texttt{c} 删除得到。
  • S4S_4 可能等于 TT,因为 T=ababcT' = \texttt{ababc} 可以通过将 S4=abdbcS_4 = \texttt{abdbc} 的第 33 个字符 d\texttt{d} 替换为 b\texttt{b} 得到。
  • S5S_5 不可能等于 TT,因为以 S5=abbacS_5 = \texttt{abbac} 作为 TT 时,T=ababcT' = \texttt{ababc} 不满足题目中的 44 个条件中的任何一个。

由 ChatGPT 4.1 翻译