Kurze Erklärung des Problems
Schreiben Sie ein Programm, um den Mindestabstand zwischen zwei Punkten zu ermitteln, die sich nur auf Strahlen aus dem Ursprung und auf Kreisen ausrichten, die auf dem Ursprung zentriert sind.
Erklärung der Prämisse
Stellen wir uns nun vor, wir sind in einem Flugzeug, und in diesem Flugzeug dürfen wir nur auf besondere Weise reisen. Wir dürfen mit jedem Strahl reisen, der vom Ursprung ausgeht.
Wir können auch auf jedem Kreis fahren, der in der Mitte eines Kreises liegt
Jetzt ist es unser Ziel, von einem Punkt in diesem Flugzeug zum anderen zu reisen. Wir können jedoch nicht einfach auf einem einfachen euklidischen Pfad wandern, sondern nur, wenn die Punkte zufällig auf einen Strahl fallen, der vom Zentrum ausgeht.
Wir können mit diesem reisen, weil es auf einen unserer Strahlen fällt.
Wir können auch auf Kreisen fahren, die am Ursprung zentriert sind.
Beispiele
Hier ist die Herausforderung:
Wir müssen auf dem kürzesten Weg von einem Punkt zum anderen gelangen. Oft ist dies eine Kombination aus Reisen auf Kreisen und Strahlen.
Dies könnte jedoch auch auf zwei Strahlen erfolgen.
Manchmal gibt es zwei Pfade, die die Mindestentfernung zurücklegen.
Problem
Ihre Herausforderung besteht darin, ein Programm zu schreiben, das bei zwei gegebenen Punkten den Mindestabstand zwischen ihnen ergibt, wenn wir diese Regeln einhalten. Die Eingaben können entweder in rechteckiger oder in polarer Form erfolgen, und die Ausgabe sollte eine Zahl sein, der Abstand zwischen ihnen.
Testfälle
(mit rechteckigem Eingang)
(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