27/12/2020 | Очный тур личного первенства по спортивному программированию (H) |
Ограничения: время – 500ms/1000ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В марсианском поселении распространились несколько экзотических религий, и верующие решили создать епархии для каждой из них. Епархия должна иметь форму прямоугольника, и количество верующих, проживающих в этой епархии, должно превышать верующих всех других религий вместе взятых. Желательно, чтобы эта разница в количестве верующих была максимальной. Если существует несколько вариантов, обеспечивающих максимальную разницу, предпочтительным является вариант с наибольшей площадью, чтобы в дальнейшем можно было поселить новых верующих.
Первая строка ввода содержит два целых числа N и M (1≤N,M≤200) - размеры поселения.
Далее следует N строк, содержащих M символов (прописные латинские буквы и символ '.'
) - размещение жителей
разных религий в поселении. Символ '.'
означает пустое место в поселении, буквы - место жительства человека с этой религией.
Вывести для каждой религии строку, содержащую обозначение этой религии и координаты для епархии этой религии. Результаты нужно выводить в порядке возрастания обозначений этой религии. Если существует несколько вариантов для координат епархии с максимальным превышением количества верующих этой религии над другими и имеющих максимальную площадь, то можно вывести любой вариант из них.
Пример ввода
3 6 .B..BZ BABBAZ ZB..ZZ
Пример вывода
A 2 2 2 2 B 1 1 3 4 Z 1 6 3 6