Задача
В файле дана последовательность двумерных точек с тегами points:
12.23 3.12 Tag2
1.23 23.12 Tag3
12.3 23.1 Tag4
12.3 23.2 Tag5
2.23 23.12 Tag6
2.23 2.12 Tag7
Для заданной координаты p и радиуса r найти точки из points попадающие в окрестность r точки p и вывести их теги.
Требования:
- Интерфейс приложения:
При запуске в CLI аргументе передается путь до файла с точками. После запуска приложение читает p и r из stdin и пишет ответ в stdout, затем снова ждет запрос в stdin и так далее
~$ app.py --points ./path/to/points
stdin: 12.23 23.1 1
stdout: Tag1, Tag5
stdin: 120.23 23.1 10
stdout:
-
Приложение должно обрабатывать исключения связанные с некорректными входными данными
-
Код должен соответствовать рекомендациям по оформлению кода pep8, иметь логичное выделение и именование сущностей
-
Наличие модульных тестов
-
setup.py для сборки пакета и развёртывания в среде ОС
-
Предложить решение с наилучшей вычислительной сложностью поиска. Подсказка: O(n) - плохой вариант, O(log(n)) - хороший, быстрее чем O(log(n)) - очень хороший.