编程题
数字排列 ### 题目描述 对于整数序列 $(a_1,a_2,\cdots,a_n)$ 和 $1\sim n$ 的排列 $(p_1,p_2,\cdots,p_n)$,称 $(a_1,a_2,\cdots,a_n)$ 符合 $(p_1,p_2,\cdots,p_n)$,当且仅当: - $\{a\}$ 中任意两个数字互不相同; - 将 $(a_1,a_2,\cdots,a_n)$ 从小到大排序后,将会得到 $(a_{p_1},a_{p_2},\cdots,a_{p_n})$。 现在给出 $1\sim n$ 的排列 $\{p\}$ 和序列 $h_1,h_2,\cdots,h_m$​​,请你求出哪些 $\{h\}$ 的子串符合排列 $\{p\}$。 ### 输入描述 第一行两个空格隔开的正整数 $n,m$。 第二行 $n$ 个空格隔开的正整数,表示排列 $p$。 第三行 $m$ 个空格隔开的正整数,表示序列 $h$。 其中, $2\le n\le m\le 10^6;1\le h_i\le 10^9;1\le p_i\le n$,保证 $\{h\}$ 中的元素互不相同,且 $\{p\}$ 是一个排列。 ### 输出描述 第一行一个整数 $k$,表示符合 $\{p\}$ 的子串个数。 第二行 $k$ 个空格隔开的正整数,表示这些子串的起始位置(编号从 $1$ 开始)。请将这些位置按照从小到大的顺序输出。特别地,若 $k=0$,那么你也应当输出一个空行。 ### 输入输出样例 #### 示例 1 >输入 ```txt 5 10 2 1 5 3 4 5 6 3 8 12 7 1 10 11 9 ``` >输出 ```txt 2 2 6 ```
查看答案
赣ICP备20007335号-2