Tantangan
Diberikan jumlah persegi panjang yang sewenang-wenang, menghasilkan jumlah total persimpangan saat digambar dalam bidang 2D.
Persimpangan di sini didefinisikan sebagai titik P
yang dilintasi oleh dua garis yang saling orthogonal dan keduanya tidak berakhir P
.
Contoh
Setiap persegi panjang di sini dilambangkan dengan 2-tuple dengan koordinat sudut kiri atas terlebih dahulu dan koordinat sudut kanan bawah kedua.
[(-8,6), (- 4, -2)] [(-4,9), (4,3)] [(2,10), (14,4)] [(1,7), (10, -6)] [(7,4), (10,2)] [(5,2), (9, -4)] [(-6, -4), (- 2, -6)]
Kotak itu membuat 6 persimpangan, yang harus menjadi output Anda.
- Seperti yang Anda lihat pada gambar di atas, menyentuh persegi panjang tidak akan membuat persimpangan di sini dan tidak dihitung.
- Anda dapat menyandikan segi empat dalam format apa pun yang Anda inginkan. Jelaskan format mana yang Anda gunakan.
- Jika beberapa persegi panjang berpotongan pada titik yang sama, itu hanya dihitung sebagai satu persimpangan.
- Koordinat akan selalu berupa bilangan bulat.
- Tidak akan ada persegi panjang duplikat di input.
- Anda akan selalu mendapatkan setidaknya satu persegi panjang sebagai input.
- Anda tidak boleh menggunakan bawaan apa pun yang memecahkan masalah ini secara langsung. Selain itu, Anda tidak boleh menggunakan builtin yang memecahkan persamaan. Semua bawaan lainnya diizinkan.
- Output harus berupa bilangan bulat tunggal yang menunjukkan jumlah persimpangan.
Aturan
- Fungsi atau program lengkap diizinkan.
- Aturan default untuk input / output.
- Celah standar berlaku.
- Ini adalah kode-golf , sehingga byte-count terendah akan menang. Tiebreak adalah pengiriman sebelumnya.
Uji kasus
Format yang sama seperti pada contoh di atas. Persegi panjang dibungkus dalam daftar.
[[(-8,6), (- 4, -2)], [(- 4,9), (4,3)], [(2,10), (14,4)], [(1 , 7), (10, -6)], [(7,4), (10,2)], [(5,2), (9, -4)], [(- 6, -4), (-2, -6)]] -> 6 [[(-2,2), (6, -4)]] -> 0 [[(-12,10), (- 8,6)], [(- 14,6), (- 10,2)], [(- 10,6), (- 6,2)]] - > 0 [[(-4,10), (6,2)], [(- 2,8), (4,3)], [(1,6), (8,4)], [(2,11) ), (5,5)]] -> 10 [[(8,2), (12, -2)], [(10,0), (14, -4)]] -> 2 [[(0,2), (2,0)], [(0,1), (3,0)]] -> 1 [[(-10, -2), (- 6, -6)], [(- 6, -2), (- 2, -6)], [(- 8, -4), (- 4, -8)]] -> 3
Selamat Coding!
[[(0,0),(1,2)],[(0,0),(2,1)]]
apakah ada 1 persimpangan?