bzoj#P1729. [Usaco2005 dec]Cow Patterns 牛的模式匹配

[Usaco2005 dec]Cow Patterns 牛的模式匹配

题目描述

约翰的 nn 只奶牛中出现了 kk 只爱惹麻烦的坏蛋。奶牛们按一定的顺序排队的时候,这些坏蛋总会站在一起。为了找出这些坏蛋,约翰让他的奶牛排好队进入牛棚,同时需要你的慧眼来识别坏蛋,为了区分,约翰给所有奶牛都发了号牌,上面写着一个 1s1\dots s 之间的数字。虽然这不是一个完美的方法,但也能起一点作用。现在,约翰已经不记得坏蛋们的具体号码。但是凭他的记忆,他给出一个「模式串」。原坏蛋的号码如果相同,模式串中他们的号码依然相同。模式串中坏蛋们之间号码的大小关系也与原号码相同的。比如,对于这样一个模式串:1,4,4,3,2,11,4,4,3,2,1。原来的 66 只坏蛋,排最前面的与排最后的号码相同(尽管不一定是 11),而且他们的号码在团伙中是最小的。第 2,32,3 位置的坏蛋,他们的号码也相同(不一定是 44),且是坏蛋团伙中最大的。现在所有奶牛排成队列,号码依次是这样:5,6,2,10,10,7,3,2,95,6,2,10,10,7,3,2,9 存在子串 2,10,10,7,3,22,10,10,7,3,2 满足模式串的相同关系和大小关系,所以这就是坏蛋团伙,请找出 kk 个坏蛋的团伙的所有可能性。

输入格式

第一行输入三个整数 n,k,sn,k,s。接下来 nn 行每行输入一只牛的号码。接下来 kk 行每行输入一个模式串的号码。

输出格式

第一行输出一个整数 bb。接下来 bb 行,每行一个整数,表示一种可能下的坏蛋团伙的起始位置。

9 6 10
5
6
2
10
10
7
3
2
9
1
4
4
3
2
1
1
3

样例说明

INPUT DETAILS:
The sample input corresponds to the example given in the problem statement.

OUTPUT DETAILS:
There is only one match, at position 33 within FJ's sequence of nn cows.

数据规模与约定

对于 100%100\% 的数据,1n1051 \leq n \leq 10^51k2.5×1041 \leq k \leq 2.5\times 10^41s251 \leq s \leq 25

题目来源

Gold