printРабочее место участника

printЗадачи

1143. Охрана

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Офисное здание известной корпорации расположен в центре Лондона. На квадратной крыше здания есть несколько люков. Чтобы предотвратить проникновение агентов-парашютистов в здание через эти люки, на крышу выпустили злую собаку. Но она вскоре свалилась с крыши. На заседании совета директоров было решено привязать следующую собаку в какой-нибудь точке крыши. Однако, если привязь будет слишком короткой, то собака не достанет до всех люков, а если слишком длинной, то снова упадет с крыши. Напишите программу, определяющую точку на крыше, куда нужно привязать собаку. Длина привязи должна позволять собаке доставать до центра каждого люка, но не переходить через край крыши (доставать до края крыши можно). Точка для прикрепления привязи должна иметь целые координаты и не может совпадать с координатами какого-нибудь люка. Если подходящей точки не окажется, программа должна предлагать приобрести вместо глупой собаки более дорогого и умного робота-охранника.
В первой строке входного файла содержится одно целое число `N` (`1\ ≤\ N\ ≤\ 10`) – количество наборов исходных данных. Далее следует `N` блоков, в первой строке блока содержатся два целых числа, разделенных пробелом – размеры крыши `S` (`2\ ≤\ S\ ≤\ 40`) и количество люков `H` (`1\ ≤\ H\ ≤\ 50`). Далее следует `H` строк, в каждой строке два целых числа, разделенных пробелом – координаты люка `x` и `y` (`0\ <\ x\ <S`, `0\ <\ y\ <\ S`). Нет люков с одинаковыми координатами. Центр координат – один из углов крыши, а оси направлены вдоль краев крыши.
В выходной файл для каждого набора исходных данных вывести строку, содержащую либо слово dog и два целых числа `X` и `Y`, разделенных пробелами – координаты точки для прикрепления привязи, либо только слово robot, если точку найти не удастся. Если возможно несколько подходящих точек, то вывести точку с наименьшим `X`, а если и таких точек несколько, то точку с наименьшим `Y` среди точек с наименьшим `X`.

Пример ввода

3
10 2
6 6
5 4
20 2
1 1
19 19
10 3
1 1
1 2
1 3

Пример вывода

dog 3 6
robot
dog 2 2
loading