Bisakah persegi panjang ini mengisi ruang persegi panjang?
Diberikan banyak persegi panjang, Anda ditanya apakah mereka dapat diatur untuk mengisi ruang persegi panjang atau tidak.
Spesifikasi
Diberikan sekelompok m x n
persegi panjang sewenang-wenang ; 0 <= m, n <= 1000
, tentukan apakah mungkin untuk mengaturnya sehingga mereka menutupi area persegi persis tanpa lubang atau tumpang tindih. Persegi panjang tidak dapat diputar, dan masing-masing persegi panjang hanya dapat ditempatkan satu kali.
Memasukkan
Input untuk ini sangat fleksibel, selama input memberikan semacam daftar dimensi 2-ruang. Misalnya, kedua hal berikut ini valid:
Dipisahkan oleh Space, Return
1 2
1 5
4 5
3 6
Daftar Dimensi
[[1, 2], [1, 5], [4, 5], [3, 6]]
Keluaran
Semacam nilai true / false seperti true / false, 0/1, T / F, True / False, dll. Jika Anda akan menggunakan metode output yang tidak terlalu jelas, harap sebutkan dalam jawaban Anda.
Contohnya
Test Case 1
Memasukkan:
1 1
1 5
2 6
Output:
true
(atau yang serupa)
Bagaimana mengaturnya:
XYYYYY
ZZZZZZ
ZZZZZZ
Test Case 2
Memasukkan:
1 1
2 2
Keluaran:
false
(atau yang serupa)
Penjelasan: Menjadi jelas bahwa Anda tidak dapat mengatur dua kotak dengan ukuran yang berbeda dan membuat tepinya sejajar.
Test Case 3
Memasukkan:
1 1
1 2
1 2
2 1
2 1
Output:
true
(atau yang serupa) Bagaimana mengaturnya:
AAB
DEB
DCC
Seperti yang ditunjukkan oleh @ETHProductions, untuk semua kasus uji lainnya, Anda dapat terus menggabungkan persegi panjang dengan panjang tepi umum hingga Anda hanya memiliki satu persegi panjang, jadi kotak uji ini hanya untuk memecahkan kode yang menggunakan ide ini.
Test Case 4
Memasukkan:
3 2
4 1
2 1
4 1
2 1
5 2
3 2
1 4
3 2
2 1
2 1
1 1
5 1
Output:
true
(atau yang serupa)
Bagaimana mengaturnya:
AAABBBBEE
AAACCDDDD
FFFFFGGGH
FFFFFGGGH
IIIJJKKLH
IIIMMMMMH
Catatan : Anda tidak perlu menyatakan bagaimana mengaturnya, Anda hanya perlu menentukan apakah tidak dapat diatur.
Ini adalah kode golf, jadi jawaban tersingkat dalam byte menang! Saya akan menerima jawaban terpendek pada 14 Januari, tetapi jangan ragu untuk mengirimkan jawaban lebih lambat dari itu karena saya masih bisa memberikan suara! :)
Selamat bermain golf!
~ AL
PS Jika Anda tahu tag apa yang harus diterapkan untuk masalah ini, silakan tambahkan, saya sama sekali tidak tahu apa yang harus dimasukkan sebagai tag selain kode-golf.
EDIT : Program Anda harus dapat memproses hingga 25 persegi panjang, dalam waktu paling lama 10 detik pada komputer yang layak (saya akan cukup fleksibel pada aturan ini).
EDIT : Saya telah memperpanjang batas waktu penerimaan pengiriman hingga hari terakhir tahun ini, tetapi saya ragu saya akan mendapatkan jawaban saat itu ...
EDIT : Saya telah memperpanjang batas waktu penerimaan pengiriman 2 minggu, jadi jika tidak ada lagi jawaban yang masuk saat itu, jawaban C saat ini akan diterima! :)
[[1, 2], [2, 1], [1, 1], [1, 2], [2, 1]]
(yang dapat diatur ABB ACD EED
). Anda mungkin ingin menambahkan test case sederhana ini.