Breve spiegazione del problema
Scrivi un programma per trovare la distanza minima tra due punti che viaggiano solo su raggi che provengono dall'origine e cerchi centrati sull'origine.
Spiegazione dei locali
Ora immaginiamo di essere su un piano e su questo piano ci è permesso viaggiare solo in modi speciali. Ci è permesso viaggiare su qualsiasi raggio proveniente dall'origine.
Possiamo anche viaggiare su qualsiasi cerchio centrato su un cerchio
Ora il nostro obiettivo è viaggiare da un punto su questo piano all'altro. Tuttavia, non possiamo limitarci a percorrere un semplice percorso euclideo, possiamo farlo solo se i punti cadono su un raggio che emana dal centro.
Possiamo viaggiare su questo perché cade su uno dei nostri raggi.
Possiamo anche viaggiare su cerchi centrati sull'origine.
Esempi
Ora ecco la sfida:
Dobbiamo andare da un punto all'altro nel percorso più breve; spesso questa è una combinazione di viaggiare su cerchi e raggi.
Questo, tuttavia, potrebbe anche viaggiare su due raggi.
A volte esistono due percorsi che percorrono la distanza minima.
Problema
La tua sfida è quella di scrivere un programma che quando ci vengono dati due punti ci darà la distanza minima tra loro se seguiamo queste regole. Gli input possono essere dati in forme rettangolari o polari e l'output dovrebbe essere un numero, la distanza tra.
Casi test
(con ingresso rettangolare)
(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