ฉันมีหนังสือและชั้นวางหนังสือ ฉันต้องการวางหนังสือให้มากที่สุดเท่าที่จะทำได้ แต่ฉันมีกฎ ทุกมิติของหนังสือ (ความสูงความกว้างและความลึก) ควรเป็นลำดับที่ไม่เพิ่มขึ้นบนชั้นวาง
ซึ่งหมายความว่าหนังสือทุกเล่มจะต้องสูงอย่างน้อยที่สุดเท่าที่จะเป็นไปได้ เช่นเดียวกันกับความกว้างและความลึก คุณไม่สามารถหมุนหนังสือเพื่อสลับความสูงความกว้างและความลึกของหนังสือได้
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดขนาดของหนังสือทั้งหมดเป็นเอาท์พุทอินพุตหรือส่งกลับจำนวนสูงสุดของหนังสือที่ฉันสามารถวางบนชั้นวาง
อินพุต
- รายการจำนวนเต็มสามเท่าของจำนวนเต็มบวกที่แต่ละ triplet กำหนดความสูงความกว้างและความลึกของหนังสือ
- จะมีอย่างน้อยหนึ่ง triplet ในรายการอินพุต
- หนังสือสองเล่มสามารถมีความยาวเท่ากันตามจำนวนมิติใด ๆ
เอาท์พุต
- จำนวนเต็มบวกเดียวจำนวนสูงสุดของหนังสือที่พอดีกับชั้นวางที่เป็นไปตามกฎ
ความซับซ้อนของเวลา
อัลกอริทึมของคุณควรมีพหุนามความซับซ้อนเวลากรณีเลวร้ายที่สุดในจำนวนหนังสือ ซึ่งหมายความว่าตัวอย่างเช่นความซับซ้อนของเวลาต่อไปนี้เป็นสิ่งที่ถูกต้องทั้งหมด: O (N ^ 3), O (บันทึก (N) * N ^ 2), O (N) และสิ่งต่อไปนี้ไม่ถูกต้อง: O (2 ^ N), O (N!), O (N ^ N)
ตัวอย่าง
อินพุต => เอาท์พุท
(1, 1, 1) => 1
(5, 2, 5), (1, 3, 5) => 1
(5, 2, 5), (1, 2, 5) => 2
(2, 2, 2), (2, 2, 2), (2, 2, 2), (1, 3, 6) => 3
(1, 2, 5), (1, 3, 5), (1, 2, 8), (1, 2, 5), (7, 7, 7) => 4
(5, 19, 3), (9, 4, 16), (15, 16, 13), (7, 4, 16), (1, 13, 14), (20, 1, 15), (9, 8, 19), (4, 11, 1) => 3
(1, 1, 18), (1, 13, 7), (14, 1, 17), (8, 15, 16), (18, 8, 12), (8, 8, 15), (10, 1, 14), (18, 4, 6), (10, 4, 11), (17, 14, 17), (7, 10, 10), (19, 16, 17), (13, 19, 2), (16, 8, 13), (14, 6, 12), (18, 12, 3) => 5
นี่คือรหัสกอล์ฟเพื่อให้รายการที่สั้นที่สุดชนะ
เป็นหนังสือที่น่าสนใจท้าทายการเรียงลำดับที่เกี่ยวข้อง: หนังสือกองเรียง