Школа программиста
Резервная копия - VPS Hoster 

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Префикс-функция

(Время: 2 сек. Память: 32 Мб Сложность: 51%)

Дана непустая строка S длиной N символов. Будем считать, что элементы строки нумеруются от 1 до N.

Для каждой i-й позиции строки S определим подстроку, заканчивающуюся в этой позиции, которая совпадает с некоторым началом всей строки S и имеет длину, меньшую, чем i (т.е. не равна i-му префиксу исходной строки). Значением префикс-функции P(i) будем считать длину этой подстроки.

Требуется для всех i от 1 до N вычислить значение P(i).

Входные данные

В единственной строке входного файла INPUT.TXT записана строка, состоящая из символов с кодами ASCII от 33 до 127. Длина строки не превышает 106.

Выходные данные

В выходной файл OUTPUT.TXT выведите все значения префикс-функции.

Примеры

INPUT.TXTOUTPUT.TXT
1ABRACADABRA0 0 0 1 0 1 0 1 2 3 4
2ABACABADABACABA0 0 1 0 1 2 3 0 1 2 3 4 5 6 7

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Введение
 Целочисленная арифметика
 Алгоритмы сортировки
 Длинная арифметика
 C++ Standard Template Library
 Динамическое программирование
 Комбинаторика
 Вычислительная геометрия
 Строки
 Структуры данных
 Теория графов - 1
 Теория графов - 2
 Простые задачи
 Алгоритмы на строках
 Полиномиальный хеш
 A. Антипалиндром
 B. Префикс-функция
 C. Z-функция
 D. Поле чудес
 E. Поиск подстроки
 F. Сдвиг текста
 G. Циклическая строка
 H. Суффиксы
 I. Количество различных подстрок
 J. Дендрохронология
 K. Abracadabra
 L. Алгоритм Манакера

Красноярский краевой Дворец пионеров, (c)2006 - 2022, ICQ: 151483, E-mail: admin@acmp.ru



найти девушку на вечер в Перми можно тут.