คุณมีกล่องจำนวนมากและคุณต้องการกองซ้อนในจำนวนที่น้อยที่สุดที่เป็นไปได้ ปัญหาคือคุณไม่สามารถซ้อนกล่องมากกว่าหนึ่งกล่องบนกล่องรองรับได้ดังนั้นกล่องที่หนักกว่าต้องอยู่ด้านล่างของสแต็ก
ความท้าทาย
อินพุต : รายการน้ำหนักของกล่องทั้งหมดเป็นกิโลกรัม
ผลลัพธ์ : รายการของรายการที่อธิบายถึงสแต็กของกล่อง ต้องใช้จำนวนสแต็กน้อยที่สุดที่เป็นไปได้สำหรับอินพุต ในการเป็นสแต็กที่ถูกต้องน้ำหนักของแต่ละกล่องในสแต็กจะต้องมากกว่าหรือเท่ากับผลรวมของน้ำหนักของกล่องทั้งหมดข้างบน
ตัวอย่างของสแต็คที่ถูกต้อง
(เรียงลำดับจากล่างขึ้นบน)
- [3]
- [1, 1]
- [3, 2, 1]
- [4, 2, 1, 1]
- [27, 17, 6, 3, 1]
- [33, 32, 1]
- [999, 888, 99, 11, 1]
ตัวอย่างของกองที่ไม่ถูกต้อง
(ตามลำดับจากล่างขึ้นบน)
- [1, 2]
- [3, 3, 3]
- [5, 5, 1]
- [999, 888, 777]
- [4, 3, 2]
- [4321, 3000, 1234, 321]
ตัวอย่างกรณีทดสอบ
1
IN: [1, 2, 3, 4, 5, 6, 9, 12]
OUT: [[12, 6, 3, 2, 1], [9, 5, 4]]
2
IN: [87, 432, 9999, 1234, 3030]
OUT: [[9999, 3030, 1234, 432, 87]]
3
IN: [1, 5, 3, 1, 4, 2, 1, 6, 1, 7, 2, 3]
OUT: [[6, 3, 2, 1], [7, 4, 2, 1], [5, 3, 1, 1]]
4
IN: [8, 5, 8, 8, 1, 2]
OUT: [[8, 8], [8, 5, 2, 1]]
กฎและข้อสมมติฐาน
- ใช้กฎ I / O มาตรฐานและช่องว่างที่ถูกแบน
- ใช้รูปแบบที่สะดวกสำหรับ I / O
- สแต็กอาจอธิบายจากบนลงล่างหรือล่างขึ้นบนตราบใดที่คุณมีความสอดคล้อง
- ลำดับของสแต็ก (แทนที่จะเป็นกล่องภายในสแต็คเหล่านั้น) ไม่สำคัญ
- คุณอาจใช้กล่องอินพุตเป็นรายการที่จัดเรียงไว้ล่วงหน้า คำสั่งซื้อไม่มีความสำคัญอย่างยิ่งต่อการป้อนข้อมูลตราบใดที่ปัญหาทั่วไปไม่ได้รับการแก้ไขด้วยการเรียงลำดับเอง
- หากมีการตั้งค่าสแต็คที่เหมาะสมมากกว่าหนึ่งคุณอาจส่งออกหนึ่งในนั้น
- คุณอาจสมมติว่ามีอย่างน้อยหนึ่งกล่องและกล่องทั้งหมดมีน้ำหนักอย่างน้อย 1 กิโลกรัม
- คุณต้องรองรับน้ำหนักสูงสุด 9,999 กิโลกรัมเป็นอย่างต่ำ
- คุณต้องสนับสนุนกล่องรวมสูงสุด 9,999 กล่องเป็นอย่างต่ำ
- กล่องที่มีน้ำหนักเท่ากันนั้นแยกไม่ออกดังนั้นจึงไม่จำเป็นต้องใส่คำอธิบายประกอบที่ใช้
มีความสุขในการเล่นกอล์ฟ! โชคดี!
[8, 8, 8, 5, 1]
->[[8, 8], [8, 5, 1]]
[8, 5, 8, 8, 1, 2]
->[[8, 8], [8, 5, 2, 1]]