Петя участвует в расширенной версии игры «Морской бой».
В данной версии игры в отличие от классической допускается увеличение количества и длины кораблей, а игровое поле может быть прямоугольным, размером M×K. Нумерация горизонтальных рядов поля идёт сверху вниз с 1, а вертикальных — слева направо также с 1.
Некоторые клетки поля уже заняты кораблями.
Пете необходимо разместить 1-палубный корабль на свободной клетке так, чтобы до ближайшего по направлению вверх препятствия (корабля или края поля) было как можно больше свободных клеток.
Допускается ставить корабли вплотную друг к другу.
Если подходящих горизонтальных рядов несколько — укажите ряд с наименьшим номером.
Если в этом ряду подходящих мест несколько — выберите место с наименьшим номером вертикального ряда.
В ответе запишите два целых числа через пробел: номер горизонтального ряда и номер вертикального ряда.
Гарантируется, что хотя бы одно подходящее место есть.
Входные данные
В первой строке входного файла записаны три натуральных числа: N — количество уже занятых клеток, M — число горизонтальных рядов поля и K — число вертикальных рядов поля.
Каждая из следующих N строк содержит два натуральных числа — координаты занятой клетки: номер горизонтального ряда и номер вертикального ряда.
Типовой пример организации данных во входном файле
7 6 6
2 1
2 4
4 2
5 3
6 1
4 5
5 6
При таких исходных данных ответом является пара чисел 4 и 3.
Типовой пример имеет иллюстративный характер.
Для выполнения задания используйте данные из прилагаемого файла.
Как решать. Нужна свободная клетка с максимальным числом свободных клеток вверх до ближайшего корабля или края.
При ничьей — меньший номер ряда, затем меньший номер столбца.
1) Упорядочить занятые клетки. В A — ряд, в B — столбец.
В C2 ключ =B2*100001+A2, протянуть вниз и отсортировать таблицу по C — сначала по столбцу, внутри столбца по ряду.
2) Зазор над каждым кораблём. В D2: =A2-1 (до первого корабля столбца — от верхнего края).
В D3:
=ЕСЛИ(B3=B2;A3-A2-1;A3-1)
, протянуть.
Это число свободных клеток в промежутке над кораблём.
3) Кандидат. Ставим корабль в ряд A-1 (чуть выше занятой клетки); «очки» = D-1.
Для последнего корабля столбца ещё вариант у нижнего края: ряд M (из B1), очки = M-A-1.
4) Ответ. Максимум очков даёт клетка 9998 (ряд) и 7593 (столбец): в столбце 7593 единственный корабль стоит в ряду 9999, сверху до края 9998 свободных клеток; ставим в 9998 — очки 9997.
Ответ: 9998 7593.