Penjelasan Masalah Singkat
Tulis program untuk menemukan jarak minimum antara dua titik yang hanya bepergian dengan sinar yang berasal dari titik asal dan lingkaran yang berpusat di titik asal.
Penjelasan Premis
Sekarang mari kita bayangkan kita berada di pesawat, dan di pesawat ini kita hanya boleh bepergian dengan cara khusus. Kami diizinkan melakukan perjalanan dengan sinar apa pun yang berasal dari asal.
Kita juga bisa bepergian di lingkaran mana saja yang berpusat pada lingkaran
Sekarang tujuan kami adalah melakukan perjalanan dari satu titik di pesawat ini ke yang lain. Namun, kita tidak bisa hanya melakukan perjalanan di jalur Euclidian sederhana, kita hanya bisa melakukan ini jika titik-titik jatuh pada sinar yang berasal dari pusat.
Kita dapat melakukan perjalanan ini karena itu jatuh pada salah satu dari sinar kita.
Kita juga bisa bepergian dengan lingkaran yang berpusat di titik asal.
Contohnya
Sekarang inilah tantangannya:
Kita harus berpindah dari satu titik ke titik lainnya di jalur terpendek; sering kali ini merupakan kombinasi bepergian dengan lingkaran dan sinar.
Ini, bagaimanapun, bisa juga bepergian dengan dua sinar.
Terkadang ada dua jalur yang menempuh jarak minimum.
Masalah
Tantangan Anda adalah menulis sebuah program yang ketika diberi dua poin akan memberi kami jarak minimum di antara mereka jika kami mengikuti aturan ini. Input dapat diberikan dalam bentuk persegi panjang atau kutub dan output harus satu angka, jarak antara.
Uji Kasus
(dengan input persegi panjang)
(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