Kısa Sorun Açıklaması
Yalnızca orijinden çıkan ışınlar ve orijine merkezlenmiş daireler üzerinde seyahat eden iki nokta arasındaki minimum mesafeyi bulmak için bir program yazın.
Öncül açıklaması
Şimdi bir uçakta olduğumuzu ve bu uçakta sadece özel yollarla seyahat etmemize izin verildiğini düşünelim. Menşe kaynaklı herhangi bir ışın üzerinde seyahat etmemize izin verilir.
Ayrıca bir dairede merkezlenmiş herhangi bir dairede seyahat edebiliriz
Şimdi hedefimiz bu uçaktaki bir noktadan diğerine seyahat etmektir. Ancak, sadece basit bir Öklid yolunda seyahat edemeyiz, ancak eğer noktalar merkezden yayılan bir ışın üzerine düşerse bunu yapabiliriz.
Bu konuda seyahat edebiliriz çünkü ışınlarımızdan birine düşüyor.
Ayrıca orijin merkezindeki daireleri de gezebiliriz.
Örnekler
Şimdi burada zorluk:
En kısa yoldan bir noktadan diğerine geçmeliyiz; genellikle bu, daireler ve ışınlar üzerinde seyahat etmenin bir kombinasyonudur.
Ancak bu, iki ışınla da seyahat ediyor olabilir.
Bazen asgari mesafeye giden iki yol vardır.
Sorun
Buradaki zorluğunuz, bu kurallara uymamız halinde iki nokta verildiğinde bize aralarındaki minimum mesafeyi verecek bir program yazmaktır. Girişler dikdörtgen veya kutup şeklinde verilebilir ve çıktı arasındaki mesafenin bir sayı olması gerekir.
Test Kılıfları
(dikdörtgen girişli)
(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