#P12923. 模板 2

模板 2

模板 2

  • 时间限制:5 秒
  • 内存限制:256 MiB

题目描述

Bajtazar 想在自家墙上写下一行长长的字。他决定先订做一个带有镂空字母的模板,然后将模板贴到墙上合适的位置,用喷漆涂抹,让墙上显现出模板上的字母。每次贴上模板,他都会涂满模板上的所有字母。他不介意某些字母被多次涂画,但同一位置被涂上的字母必须始终一致。模板上的字母连续排列,没有空隙。

模板供应商推出了促销:订购一个镂空文字模板,会免费附赠一个文字顺序完全相反的模板。例如,订购 olimpiada,会同时得到 olimpiadaadaipmilo

Bajtazar 想知道,哪些模板长度能够让他通过若干次放置原模板或反向模板,完整写出目标文字。即使同一长度存在多种可行模板,也只需输出该长度一次。

输入格式

输入只有一行,包含一个长度为 nn 的小写英文字母串。

输出格式

输出所有可行的模板长度,按升序排列,并以单个空格分隔。

样例输入 1

abcabcabacbabcab

样例输出 1

5 16

样例解释

可以订购模板 abcab,它的反向模板是 bacba。合理放置这两个模板即可写出目标字符串。

样例放置示意图

数据范围

对于所有数据,1n10000001 \le n \le 1\,000\,000,输入字符串只含小写英文字母。

子任务编号 分值 特殊限制
1 15 n500n \le 500
2 25 n5000n \le 5000
3 40 n100000n \le 100000
4 20 无特殊限制

附加样例说明

  • n=201n=201 且字符串为 a100ba100\texttt{a}^{100}\texttt{b}\texttt{a}^{100} 时,可行长度为 101,102,,201101,102,\ldots,201
  • n=50000n=50000 且字符串为 (ab)25000(\texttt{ab})^{25000} 时,可行长度为 2,4,,500002,4,\ldots,50000