Tantangan
Diberikan jumlah persegi panjang yang sewenang-wenang, menghasilkan jumlah total persimpangan saat digambar dalam bidang 2D.
Persimpangan di sini didefinisikan sebagai titik Pyang 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?
