На одной из тренировок школьников на NEERC в этом году, была одна интересная строковая задача. Вот её приблизительное условие:
Строка называется хорошей, если какой либо её префикс ненулевой длины и отличный от всей строки совпадает с её суффиксом. Дана строка длиной до 105 символов, нужно для каждого её циклического сдвига определить является он хорошим или нет.
Условие в оригинале и авторское решение по задаче можно найти где-то-тут. Оригинальное название задачи "Заклинание Границы".
В авторском решении, что-то весьма хитрое с z-функцией и разделяй-и-властвуй, кажется, я не очень понял. Предлагаю пообсуждать решение здесь :).
P.S. Некто e-maxx, говорил, что, вроде бы, подобная задача была когда то в Петрозаводске на Станкевич контесте. И что у нее есть решение как z-функцией, так и суффиксным деревом.