Breve Problema Explicação
Escreva um programa para encontrar a distância mínima entre dois pontos que viajam apenas em raios que emanam da origem e círculos centrados na origem.
Explicação da premissa
Agora vamos imaginar que estamos em um avião, e neste plano só podemos viajar de maneiras especiais. Estamos autorizados a viajar em qualquer raio que emana da origem.
Também podemos viajar em qualquer círculo centrado em um círculo
Agora, nosso objetivo é viajar de um ponto nesse avião para outro. No entanto, não podemos simplesmente viajar por um caminho euclidiano simples; só podemos fazer isso se os pontos caírem em um raio que emana do centro.
Podemos viajar nessa porque cai em um dos nossos raios.
Também podemos viajar em círculos centrados na origem.
Exemplos
Agora, aqui está o desafio:
Temos que ir de um ponto a outro no caminho mais curto; geralmente é uma combinação de viagens em círculos e raios.
Isso, no entanto, também pode estar viajando em dois raios.
Às vezes, existem dois caminhos que percorrem a distância mínima.
Problema
Seu desafio é escrever um programa que, quando dados dois pontos, nos dará a distância mínima entre eles, se seguirmos essas regras. As entradas podem ser dadas em formas retangulares ou polares e a saída deve ser um número, a distância entre elas.
Casos de teste
(com entrada retangular)
(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