Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2012, 22:26   #1
Alexander_A
Пользователь
 
Регистрация: 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.
Alexander_A вне форума Ответить с цитированием
Старый 16.04.2012, 22:42   #2
Alexander_A
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 13
По умолчанию

Нашел ошибку в алгоритме. Оказалось, что я не учел вариант, когда расстояние R = 0. Теперь программа успешно проходит все тесты.

Последний раз редактировалось Alexander_A; 17.04.2012 в 21:41.
Alexander_A вне форума Ответить с цитированием
Старый 16.04.2012, 22:48   #3
Alexander_A
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 13
По умолчанию

Код я удалил, чтобы дать возможность другим людям самостоятельно решить эту задачу.

Последний раз редактировалось Alexander_A; 17.04.2012 в 21:45.
Alexander_A вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Круг на плоскости 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