Краткое объяснение проблемы
Напишите программу, чтобы найти минимальное расстояние между двумя точками, проходящими только на лучах, исходящих от источника, и окружностях с центром в начале координат.
Объяснение Помещения
Теперь давайте представим, что мы находимся в самолете, и на этом самолете нам разрешено путешествовать только особыми способами. Нам разрешено путешествовать на любом луче, исходящем из источника.
Мы также можем путешествовать по любому кругу с центром в кругу
Теперь наша цель - путешествовать из одной точки этого самолета в другую. Однако мы не можем просто путешествовать по простому евклидову пути, мы можем сделать это только в том случае, если точки попадают на луч, исходящий из центра.
Мы можем путешествовать на этом, потому что он падает на один из наших лучей.
Мы также можем путешествовать по кругу с центром в начале координат.
Примеры
Теперь вот проблема:
Мы должны добраться из одной точки в другую по кратчайшему пути; часто это сочетание путешествий по кругу и лучам.
Это, однако, может также путешествовать на двух лучах.
Иногда существуют два пути, которые проходят минимальное расстояние.
проблема
Ваша задача - написать программу, которая при наличии двух точек даст нам минимальное расстояние между ними, если мы будем следовать этим правилам. Входные данные могут быть заданы либо в прямоугольной, либо в полярной форме, а выходной должен быть одним числом, расстояние между ними.
Тестовые случаи
(с прямоугольным входом)
(1,1) (1,-1) -> ~ 2.22144
(0,0) (1, 1) -> ~ 1.41421
(1,0) (-0.4161 , 0.90929) -> ~ 2
(1,1) (1, 0) -> ~ 1.19961
(1,2) (3, 4) -> ~ 3.16609