#Q0034. 模板串(sza)

模板串(sza)

题目描述

小 Z 想要用一个文字图案装饰他的围墙,文字图案用长为 nn 的字符串 SS 表示。为了达到目的,他决定订购一个镂空模板,然后用喷漆喷出该图案。喷涂的时候模板不能翻转、旋转,不能只喷涂一部分,但是在喷涂的时候可以与之前相同字符的区域重合。例如,不可以用模板 b 喷出 pq不可以用模板 ab 喷出 a,但是可以用模板 abab 喷两次喷出 ababab

订购时供应商表示,如果订购字符串 TT,那么不仅可以获得字符串 TT 的模板,还可以获得其反串的模板(字符串的反串定义为,从右往左依次取出字符得到的字符串,例如,abc 的反串是 cba)。

小 Z 只想订购一个字符串 TT,从而获得两个模板。他想要知道有哪些字符串 TT 满足,他能够用得到的两个模板喷出字符串 SS。由于输出可能太大,他只想知道字符串 TT 的长度 T|T| 组成的集合。

输入格式

从文件 sza.in 中读入数据。

一行给出字符串 SS

输出格式

输出到文件 sza.out 中。

输出共一行,从小到大输出所有可能的长度,用空格分隔。

样例 1 输入

abcabcabacbabcab

样例 1 输出

5 16

样例 1 解释

可以选择长为 55 的字符串 bacba,得到 bacbaabcab 两个模板,可以证明这是可行的;可以选择长为 1616 的字符串 abcabcabacbabcabSS,显然可以。可以证明剩下的长度均不合法。

样例 2

见选手目录下的 sza2.insza2.ans

该样例满足 n=201n=201,字符串 SSa100ba100\texttt{a}^{100}\texttt{ba}^{100}(其中 TkT^k 表示字符串 TT 重复 kk 次并拼接所得到的字符串),答案为 101,102,103,,201101,102,103,\cdots,201

样例 3

见选手目录下的 sza3.insza3.ans

该样例满足 n=50000n=50000,字符串 SS(ab)25000(\texttt{ab})^{25000},答案为 2,4,6,,500002,4,6,\cdots,50000

样例 4

见选手目录下的 sza4.insza4.ans

该样例满足子任务 22 的限制。

样例 5

见选手目录下的 sza5.insza5.ans

该样例满足子任务 33 的限制。

样例 6

见选手目录下的 sza6.insza6.ans

该样例满足子任务 44 的限制。

数据范围

对于所有测试数据,保证:1n1061\le n\le10^6SS 的字符集为小写英文字母。

子任务编号 nn 子任务分值
11 500\le500 1515
22 5000\le5000 2525
33 105\le10^5 3030
44 106\le10^6 3030

本题评测方式为:捆绑,某个子任务的分数被计入当且仅当该子任务内所有测试点均通过。