A. До чего доводит грусть CРОЧНО ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Темнело. Проливной дождь стучал по стеклу. Вячеслав сидел на подоконнике и грустил. Чтобы как-то скрасить себе вечер, он заполнял квадрат размером n×n
ноликами и единичками. Как только все поле было заполнено, он решил вычеркивать последовательности единиц. Чтобы растянуть удовольствие от процесса, он выбирал либо 3, либо 5
подряд стоящих единиц в строчке.
Вячеславу стало интересно, какое максимальное число единиц возможно вычеркнуть описанным Но поскольку его уже сильно клонило в сон, и он мог что-то пропустить, он просит вас ему решить эту задачу.
Входные данные
Первая строка содержит одно целое число n
(3≤n≤103
) — размеры поля, состоящего из символов «0» и «1».
Далее следует n
строк по n
символов (нулей и единиц) — описание поля.
Выходные данные
Выведите единственное целое число — максимальное количество единиц, которое сможет вычеркнуть Вячеслав.
Система оценки
Максимальный за задачу — 100
.
Для начала, давайте разберемся в условии задачи. В ней говорится, что Вячеслав заполняет квадрат размером n×n ноликами и единичками. Затем он решил вычеркивать последовательности единиц, выбирая либо 3, либо 5 подряд стоящих единиц в строчке. Вопрос задачи состоит в том, какое максимальное количество единиц можно вычеркнуть.
Для решения этой задачи нам нужно рассмотреть каждую строку и столбец квадрата, чтобы найти максимальное количество подряд идущих единиц. Затем мы сможем вычеркнуть эти единицы, соответственно уменьшив общее количество единиц в квадрате.
Давайте распишем решение шаг за шагом:
1. Прочитаем входные данные: первую строку содержащую число n - размеры квадрата, и следующие n строк - описание поля.
2. Создадим переменную maxCount и установим ее значение равным 0. В этой переменной мы будем хранить максимальное количество единиц.
3. Пройдемся по каждой строке и каждому столбцу квадрата. Для этого воспользуемся двумя вложенными циклами, где первый будет итерироваться по строкам, а второй - по столбцам.
4. Внутри циклов, проверим, если текущий элемент равен 1, то начнем подсчет количества подряд идущих единиц. Для этого создадим переменную count и установим ее значение равным 1.
5. Затем, пока следующий элемент равен 1 и пока count меньше или равно 5 (так как мы можем вычеркнуть либо 3, либо 5 подряд идущих единиц), увеличиваем count на 1 и переходим к следующему элементу.
6. Если count больше currentMaxCount (текущее максимальное количество единиц на данный момент), то обновляем currentMaxCount значением count.
7. Продолжаем циклы, пока не пройдемся по всем элементам квадрата.
8. После завершения циклов, если currentMaxCount больше maxCount, то обновляем maxCount значением currentMaxCount.
9. После прохода по всем элементам, выводим значение maxCount - максимальное количество единиц, которое можно вычеркнуть.
Данный алгоритм работает, так как он последовательно перебирает все элементы квадрата и находит максимальное количество подряд идущих единиц. Затем он сравнивает это количество с предыдущим максимальным и обновляет его, если найдено новое максимальное количество.
Надеюсь, что это решение понятно для школьника. Если возникнут дополнительные вопросы, буду рад на них ответить!