Найбільша грань
Гранню (border, verge, brink) br рядка S називається довільний власний префікс цього рядка, рівний суфіксу S.
Рядок S = abaababaabaab має дві грані (не порожні) - ab та abaab. Радок S = abaabaab також має дві грані - ab та abaab, але друга грань - перекривається. Рядок довжини n з символу, що повторюється, наприклад aaaaaaaa (або a8), має n-1 грань. Для S = a8 це грані: a, aa, aaa, aaaa, aaaaa, aaaaaa, aaaaaaa.
Поняття "власний префікс" виключає грань, яка співпадає з самим рядком.
Довжина грані - це кількість символів у ній.
Природним узагальненням поняття "грань" є поняття "найбільша грань" - це найбільший (за кількістю символів) власний префікс рядка, рівний його суфіксу.
Технічні умови
Вхідні дані
Дано рядок S (|S| ≤ 106).
Вихідні дані
Єдине число - довжина найбільшої грані.
Інформація про задачу
Ліміт часу: 1 секундаЛіміт пам`яті: 64 MB
Бали за пройдений тест: 1.6129
Складність: 30% 43/61
Класифікація: Алгоритми для рядків
Приклад
Приклад вхідних данихabaabaab |
Приклад вихідних даних5 |
| ← Сортування ДНК | Список задач | Найбільша грань підрядка → |
