KMP 字符串匹配

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Description

给出两个字符串 s1s_1s2s_2,若 s1s_1 的区间 [l,r] [l, r] 子串与 s2s_2 完全相同,则称 s2s_2s1s_1 中出现了,其出现位置为 ll。 现在请你求出 s2s_2s1s_1 中所有出现的位置。

定义一个字符串 ssborderborderss 的一个非 ss 本身的子串 t t,满足 tt 既是 ss 的前缀,又是 ss 的后缀。 对于 s2s_2,你还需要求出对于其每个前缀 ss' 的最长 borderborder 的长度。

Input

第一行为一个字符串,即为 s1s_1。 第二行为一个字符串,即为 s2s_2

1s1,s21061 \leq |s_1|,|s_2| \leq 10^6s1,s2s_1, s_2 中均只含大写英文字母。

Output

首先输出若干行,每行一个整数,按从小到大的顺序输出 s2s_2s1s_1 中出现的位置。

最后一行输出 s2|s_2| 个整数,第 ii 个整数表示 s2s_2 的长度为 ii 的前缀的最长 borderborder 长度。

Samples

ABABABC
ABA
1
3
0 0 1

ACM竞赛实践:2_基础算法

未认领
状态
已结束
题目
22
开始时间
2024-8-31 0:00
截止时间
2024-12-31 23:59
可延期
24 小时