Первыми задаются два числа от 1 до 14, которые определяют
количество кварталов в городе с запада на восток по оси x и с юга
на север по оси y соответственно. Далее идет число от 1 до 195,
задающее количество кварталов, занятых небоскрёбами, после чего
перечисляются пары x, y координат кварталов. Координаты
кварталов отсчитываются от 1.
Все числа во входных данных разделяются произвольным
количеством пробельных символов. В городе существует хотя бы
один квартал (дом мэра), не являющийся небоскрёбом .
Результат
Программа должна напечатать минимальное необходимое
число передатчиков, после чего перечислить координаты
кварталов, в которых они должны быть установлены .
2. Алгоритм решения.
Алгоритм основан на рекурсии. На каждом её шаге на карту
ставится антенна и вычисляются кварталы , охваченные вещанием .
Если до всех кварталов доходит сигнал, то расположение антенн
запоминается, при условии, что до этого не найдено расположение
с меньшим числом антенн.
Для хранения информации о расположении антенн,
небоскрёбов и кварталов, охваченных вещанием , используются
множества. Кроме того , информация о расположении небоскрёбов
дублируется в массиве , что позволяет ускорить работу программы.
3. Программная реализация
program Town; {Автор - Ширяев М.М.}
const
Nmax=14; {макс . число кварталов по горизонтали <=16}
Mmax=14; {по вертикали <=16}