สี่เหลี่ยมเหล่านี้สามารถเติมเต็มพื้นที่สี่เหลี่ยมได้หรือไม่?
เมื่อให้รูปสี่เหลี่ยมผืนผ้าคุณจะถูกถามว่าสามารถจัดเรียงให้เต็มพื้นที่สี่เหลี่ยมหรือไม่
รายละเอียด
รับพวงของm x n
รูปสี่เหลี่ยมโดยพลการ; 0 <= m, n <= 1000
ตรวจสอบว่าเป็นไปได้หรือไม่ที่จะจัดเรียงเพื่อให้ครอบคลุมพื้นที่สี่เหลี่ยมโดยไม่ต้องมีรูหรือทับซ้อนกัน ไม่สามารถหมุนสี่เหลี่ยมได้และแต่ละสี่เหลี่ยมจะวางเพียงครั้งเดียวเท่านั้น
อินพุต
อินพุตสำหรับสิ่งนี้มีความยืดหยุ่นมากตราบใดที่อินพุตให้รายการของมิติพื้นที่ 2 แบบ ตัวอย่างเช่นทั้งสองอย่างต่อไปนี้ถูกต้อง:
คั่นด้วย Space, Return
1 2
1 5
4 5
3 6
รายการขนาด
[[1, 2], [1, 5], [4, 5], [3, 6]]
เอาท์พุต
การเรียงลำดับของค่าจริง / เท็จเช่นจริง / เท็จ, 0/1, T / F, จริง / เท็จ ฯลฯ หากคุณกำลังจะใช้วิธีการแสดงผลที่ไม่ชัดเจนมากโปรดระบุในคำตอบของคุณ
ตัวอย่าง
กรณีทดสอบ 1
การป้อนข้อมูล:
1 1
1 5
2 6
ผลลัพธ์:
true
(หรือบางอย่างที่คล้ายกัน)
วิธีจัดเรียง:
XYYYYY
ZZZZZZ
ZZZZZZ
กรณีทดสอบ 2
การป้อนข้อมูล:
1 1
2 2
เอาท์พุท:
false
(หรือบางอย่างที่คล้ายกัน)
คำอธิบาย: เห็นได้ชัดว่าคุณไม่สามารถจัดเรียงสี่เหลี่ยมสองขนาดที่มีขนาดแตกต่างกัน
กรณีทดสอบ 3
การป้อนข้อมูล:
1 1
1 2
1 2
2 1
2 1
ผลลัพธ์:
true
(หรือบางอย่างที่คล้ายกัน) วิธีจัดเรียง:
AAB
DEB
DCC
ตามที่ @ETHProductions ชี้ให้เห็นสำหรับกรณีทดสอบอื่นทั้งหมดคุณสามารถรวมรูปสี่เหลี่ยมกับความยาวขอบทั่วไปได้จนกว่าคุณจะมีเพียงหนึ่งรูปสี่เหลี่ยมผืนผ้าดังนั้นกรณีทดสอบนี้จึงเป็นการทำลายรหัสใด ๆ ที่ใช้ความคิดนี้
กรณีทดสอบ 4
การป้อนข้อมูล:
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
ผลลัพธ์:
true
(หรือบางอย่างที่คล้ายกัน)
วิธีจัดเรียง:
AAABBBBEE
AAACCDDDD
FFFFFGGGH
FFFFFGGGH
IIIJJKKLH
IIIMMMMMH
หมายเหตุ : คุณไม่จำเป็นต้องระบุวิธีการจัดเรียงคุณจะต้องพิจารณาว่าไม่สามารถจัดเรียงได้
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ! ฉันจะยอมรับคำตอบที่สั้นที่สุดของวันที่ 14 มกราคม แต่อย่าลังเลที่จะส่งคำตอบในภายหลังกว่านั้นเพราะฉันยังสามารถให้ upvotes ได้! :)
มีความสุขในการเล่นกอล์ฟ!
~ AL
ป.ล. หากคุณทราบว่าควรใช้แท็กใดกับปัญหานี้โปรดเพิ่มฉันไม่ทราบเลยว่าจะใส่แท็กอื่นนอกเหนือจากโค้ดกอล์ฟ
แก้ไข : โปรแกรมของคุณควรสามารถประมวลผลได้ถึง 25 สี่เหลี่ยมในเวลาไม่เกิน 10 วินาทีในคอมพิวเตอร์ที่เหมาะสม (ฉันจะค่อนข้างยืดหยุ่นในกฎนี้)
แก้ไข : ฉันได้ขยายกำหนดเวลาตอบรับการส่งเป็นวันสุดท้ายของปี แต่ฉันสงสัยว่าฉันจะได้รับคำตอบภายใน ...
แก้ไข : ฉันได้ขยายกำหนดเวลาตอบรับการส่งภายใน 2 สัปดาห์ดังนั้นหากไม่มีคำตอบอีกแล้วคำตอบ C ปัจจุบันจะได้รับการยอมรับ! :)
[[1, 2], [2, 1], [1, 1], [1, 2], [2, 1]]
(ซึ่งสามารถจัดเรียงได้ABB ACD EED
) คุณอาจต้องการเพิ่มกรณีทดสอบอย่างง่ายนี้