1332: Грані рядка

Переглянути як PDF

Надіслати розвʼязок

Бали: 16,00 (частково)
Ліміт часу: 1.0s
Ліміт памʼяті: 64M

Автор:
Тип задачі
Дозволені мови
Assembly, Awk, Brain****, C, C++, Java, mono C#, Pascal, Perl, Python, Sed, Text, vb

Гранню рядка ~Т~ назвемо власний префікс, який рівний суфіксу

Наприклад, рядок ~T = abaababaabaab~ має дві не пусті грані – ~ab~ i ~abaab~ . Рядок ~T = abaabaab~ також має дві не пусті грані – ~ab~ i ~abaab~ , але друга грань перекриває свій префікс. Рядок із однакових символів має ~n-1~ граней, наприклад ~T = aaaaaaaa~ має такі грані: ~a, aa, aaa, aaaa, aaaaa, aaaaaa, aaaaaaa~. Довжина грані - це кількість символів у ній. Серед усіх граней знайдеться найбільша грань: - найбільший власний префікс, рівний суфіксу. Необхідно визначити найбільшу грань заданого рядка ~Т~.

Формат вхідних даних

Єдиний рядок вхідного стандартного потоку містить рядок ~Т~ ~(1 ≤ size(Т) ≤ 10^5)~- усі символи якого - це літери латиниці.

Формат вихідних даних

У єдиний рядок вихідного стандартного потоку вивести одне число – довжину найбільшої грані.

Приклад вхідних даних

abaabaab

Приклад вихідних даних

5

Коментарі

Будь ласка, прочитайте правила перед коментуванням.


Наразі коментарів немає.