问题 5316 --字符匹配

5316: 字符匹配

题目描述

给出一个长度为 $N$ 的整数串 $A$ ,和一个长度为 $K$ 的整数串 $B$ ,$A$ 和 $B$ 中的元素均是不大于 $S$ 的正整数。 我们认为两个串是相等的,当两个串的长度相当,并且两个串中,对于任意的 $i$,第 $i$ 个元素在两个串中的排名是一样的。 例如: 1 2 3 5 4 8 10 23 25 24 这两个串是相等的。 现在要求在 $A$ 的所有长度 $=B$ 的长度的子串中,有多少子串与 $B$ 串相等。

输入

第一行三个整数 $N,K,S$。 第二行 $N$ 个整数表示 $A$ 串。 第三行 $K$个整数表示 $B$ 串。

输出

第一行一个 $P$ 表示 $A$ 串中一共有多少个子串和 $B$ 串相等。 接下来 $P$ 行从小到大每行一个整数,表示和 $B$ 串相等的 $A$ 串的子串的第一个元素的位置。

样例输入输出

输入#1 复制
9 6 10
5 6 2 10 10 7 3 2 9
1 4 4 3 2 1
输出#1 复制
1
3

提示

对于 $20\%$ 的数据,$N \leq 10000$。 对于 $100\%$ 的数据,$1 \leq N \leq 500000$,$S \leq 10000$。
序号 标题 作者 发表时间 费用 订购数 操作