Олимпиадный тренинг

Задача . B. Невероятные приключения ДжоДжо


Ты думал, что тут будет легенда про ДжоДжо? Но нет, это был я, Дио!

Дана бинарная строка \(s\) длины \(n\), состоящая из символов 0 и 1. Построим квадратную таблицу размера \(n \times n\), состоящую из символов 0 и 1 следующим образом.

В первую строку таблицы запишем исходную строку \(s\). Во вторую строку таблицы запишем циклический сдвиг строки \(s\) на один вправо. В третью строку таблицы запишем циклический сдвиг строки \(s\) на два вправо. И так далее. Таким образом, в строке с номером \(k\) будет записан циклический сдвиг строки \(s\) на \(k\) вправо. Строки таблицы пронумерованы от \(0\) до \(n - 1\) сверху вниз.

В получившейся таблице требуется найти прямоугольник, состоящий только из единиц, имеющий наибольшую площадь.

Прямоугольником мы называем множество всех клеток таблицы \((i, j)\) таких, что \(x_1 \le i \le x_2\) и \(y_1 \le j \le y_2\) для некоторых целых чисел \(0 \le x_1 \le x_2 < n\) и \(0 \le y_1 \le y_2 < n\).

Напомним, что циклическим сдвигом строки \(s\) на \(k\) вправо называется строка \(s_{n-k+1} \ldots s_n s_1 s_2 \ldots s_{n-k}\). Например, циклическим сдвигом строки «01011» на \(0\) вправо является сама строка «01011», её циклическим сдвигом на \(3\) вправо является строка «01101».

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \le t \le 2 \cdot 10^4\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая и единственная строка каждого набора входных данных содержит единственную бинарную строку \(s\) (\(1 \le \lvert s \rvert \le 2 \cdot 10^5\)), состоящую из символов 0 и 1.

Гарантируется, что сумма длин строк \(|s|\) по всем наборам входных данных не превосходит \(2 \cdot 10^5\).

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

Для каждого набора входных данных выведите одно целое число — максимальную площадь прямоугольника, состоящего только из единиц. Если такого прямоугольника не существует, выведите \(0\).

Примечание

В первом наборе входных данных получается таблица \(1 \times 1\), состоящая из единственного символа 0, таким образом нет прямоугольников, состоящих из единиц, и ответ \(0\).

Во втором наборе входных данных получается таблица \(1 \times 1\), состоящая из единственного символа 1, поэтому ответ равен \(1\).

В третьем наборе входных данных получается таблица:

101
110
011

В четвёртом наборе входных данных получается таблица:

011110
001111
100111
110011
111001
111100

В пятом наборе входных данных получается таблица:

101010
010101
101010
010101
101010
010101

Прямоугольники с максимальной площадью выделены жирным шрифтом.


Примеры
Входные данныеВыходные данные
1 5
0
1
101
011110
101010
0
1
2
6
1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя