| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 | 1024 MB | 7 | 5 | 5 | 71.429% |
Финн Максмисл --- агент Британской разведки. Любой агент разведки обязан быть готов к самым непредвиденным ситуациям и уметь в считанные секунды решить любую поставленную задачу. Кроме чисто физических нормативов, на выпускном экзамене разведывательной академии требуют умения решать и сложные алгоритмические задания --- мало ли, что пригодится в жизни? Финну досталась следующая:
Дана строка $s$ длины $n$. Назовем ее $k$-разбиваемой, если ее можно разбить на $k$ непрерывных подстрок равной длины так, что любую подстроку из любой другой можно получить циклическим сдвигом. Нужно найти все $k,ドル что строка $s$ --- $k$-разбиваемая.
Поскольку в разведке все методы хороши, агент Финн решил попросить помощи у вас.
Строка $s$ называется циклическим сдвигом строки $t,ドル если существуют такие (возможно, пустые) строки $u, v,ドル что $t = uv$ и $s = vu$.
В первой строке дана строка $s$ (1ドル \le |s| \le 200,000円$), состоящая из строчных латинских букв.
В первой строке выведите число $m$ --- количество подходящих чисел $k$.
Во второй строке выведите через пробел $m$ подходящих чисел $k_i,ドル отсортированных по возрастанию.
abbabaab
3 1 2 4
abbababa
2 1 4
В первом примере можно оставить строку как есть, разбить на две строки <<abba>> и <<baab>> (несложно убедиться, что они могут быть получены друг из друга циклическим сдвигом), или разбить на четыре строки <<ab>>, <<ba>>, <<ba>> и <<ab>>, которые так же могут быть получены друг из друга циклическим сдвигом.