eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Анализируя битовые (еще и специальные) строки

Анализируя битовые (еще и специальные) строки

Вы думаете, что анализировать строки просто? Это так, но только если Вы не во сне. Но Вы во сне. Неожиданно, правда? Но... я боюсь, что это не сон, в котором Вы хотели бы оказаться. В Вашем сне имеется строка бит, длинная строка бит, с которой Вам придется иметь дело. И Вы четко понимаете, что нужно сделать, чтобы покинуть этот ужасный сон прямо сейчас: необходимо найти лучшую \textit{специальную} строку. К счастью, Вы вчера прочитали книгу по теории специальных строк. Вам удалось только вспомнить странное определение специальных строк, которое выглядело следующим образом. Пусть у Вас имеется строка бит \textbf{T }длины \textbf{n}. Биты \textbf{T }обозначим через \textbf{T_1}, \textbf{T_2}, ..., \textbf{T_n}. Обозначим через \textbf{A}(\textbf{i}, \textbf{j}) и \textbf{B}(\textbf{i}, \textbf{j}) количество \textbf{0}-бит и \textbf{1}-бит среди \textbf{T_i}, \textbf{T_\{i+1\}}, ..., \textbf{T_\{j \}}соответственно. Строка \textbf{T }называется специальной, если для каждого \textbf{i }между \textbf{1 }и \textbf{n }включительно имеют место следующие соотношения: \textbf{A}(\textbf{1}, \textbf{i}) ≥ \textbf{B}(\textbf{1}, \textbf{i}) и \textbf{A}(\textbf{i}, \textbf{n}) ≤ \textbf{B}(\textbf{i}, \textbf{n}). Однако Вас не удовлетворяет любая из специальных строк. Вам нужна наилучшая специальная строка. Сон был слишком странным, поэтому и правило определяющее какая из строк лучше, также выглядит очень странным. Пусть \textbf{L_1} и \textbf{L_2} - длины двух строк, а \textbf{P_1} и \textbf{P_2} - количество раз, которое они встречаются во входной строке \textbf{S }в качестве подстрок соответственно. Первая строка считается лучше второй, если \textbf{L_1}∙\textbf{P_1} > \textbf{L_2∙P_2}. Итак, Ваша задача проста... или нет? Найдите наилучшую специальную строку - такую специальную строку, что никакая из остальных специальных строк не лучше ее. \InputFile Одна строка \textbf{S} (\textbf{2} ≤ |\textbf{S}| ≤ \textbf{2*10^5}), состоящая из нулей и единиц. \OutputFile Первая строка должна содержать значение \textbf{L∙P}, где \textbf{L} - длина наилучшей специальной строки, а \textbf{P }- число ее вхождений в \textbf{S }в качестве подстроки. Вторая строка должна содержать саму наилучшую строку. Если таковых имеется несколько, то вывести любую. Гарантируется, что как минимум одна специальная строка является подстрокой \textbf{S}.
Лимит времени 3 секунды
Лимит использования памяти 256 MiB
Входные данные #1
00111001110101
Выходные данные #1
8
0011
Автор Геннадий Короткевич
Источник Gennady Korotkevich Contest 1, Petrozavodsk Training Camp, Day 1, Friday, August 23, 2013