![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.10.2011
Сообщений: 13
|
![]()
Доброго времени суток. Решаю задачку «Радиомаяки» с сайта acm.timus.ru (язык можно изменить в левой верхней части экрана).
После решения задачи код полученной программы можно отправить на автоматическую проверку, что я и сделал. Проверка происходит с помощью тестов, содержащих входные и выходные данные. После отправки программы на сайте происходит ее компиляция, а затем поочередная подстановка входных тестовых данных и сравнение результата с выходными данными. Первый тест приведен в примере, а остальные скрыты от пользователей. Но вот незадача, по непонятной причине моя программа не может пройти тест № 12 (вердикт - «Неверный ответ»). Помогите найти ошибку в программе. Также принимаются примеры входных данных (наподобие таких, как в примере ниже), где программа может «споткнуться» (это будет даже предпочтительней). Заранее спасибо за помощь. Условие задачи На плоскости расположено N радиомаяков. Точное положение маяков неизвестно, но известно, что их не более 10 и что их координаты — целые числа в пределах от 1 до 200. Каждый радиомаяк излучает свой уникальный сигнал, по которому его можно легко отличить от прочих. В нескольких различных контрольных точках, координаты которых известны, были проведены измерения. В результате этих измерений стали известны расстояния от каждой из контрольных точек до некоторых источников сигнала. Расстояние между точками A и B следует считать равным max(|Ax − Bx|, |Ay − By|). Необходимо по координатам контрольных точек и результатам измерений определить положение маяков на поле, если это возможно. Исходные данные В первой строке дано целое число M, количество контрольных точек. 1 ≤ M ≤ 20. Далее следуют M строк, каждая из которых содержит информацию, полученную в одной из контрольных точек, в следующем формате: <Xi>,<Yi>:<ID1>-<R1>[,<ID2>-<R2>][,…] где Xi, Yi — координаты контрольных точек, IDk — идентификатор k-го радиомаяка, Rk — расстояние от i-й контрольной точки до k-го маяка. Координаты контрольных точек — целые числа в пределах от 1 до 200. В каждой из контрольных точек был измерен хотя бы один сигнал. Идентификаторы маяков — целые числа в пределах от 1 до 30000. Результат Выведите N строк в следующем формате: <IDk>:<xk>,<yk> | UNKNOWN Здесь xk и yk — координаты k-го маяка на поле. Если положение некоторого маяка невозможно определить однозначно, вместо его координат выведите слово «UNKNOWN». Строки следует выводить в порядке возрастания IDk. Пример Исходные данные 2 15,15:16-7,5-3 10,10:5-2,16-2 Результат 5:12,12 16:UNKNOWN Для наглядности приведу рисунки, на которых визуально показаны исходные данные из примера. ![]() ![]() ![]() Последний раз редактировалось Alexander_A; 17.04.2012 в 20:31. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 27.10.2011
Сообщений: 13
|
![]()
Нашел ошибку в алгоритме. Оказалось, что я не учел вариант, когда расстояние R = 0. Теперь программа успешно проходит все тесты.
Последний раз редактировалось Alexander_A; 17.04.2012 в 21:41. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 27.10.2011
Сообщений: 13
|
![]()
Код я удалил, чтобы дать возможность другим людям самостоятельно решить эту задачу.
Последний раз редактировалось Alexander_A; 17.04.2012 в 21:45. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Круг на плоскости | daniil123 | Паскаль, Turbo Pascal, PascalABC.NET | 33 | 29.09.2011 02:42 |
Построения на плоскости | Foxtrot_1 | Помощь студентам | 0 | 28.05.2011 22:10 |
Прямые на плоскости | Spark3r | Общие вопросы C/C++ | 10 | 18.01.2010 01:16 |
поворот на плоскости | gluik | Общие вопросы C/C++ | 2 | 10.04.2009 09:26 |
Уравнение плоскости | eoln | Помощь студентам | 5 | 27.09.2008 09:22 |