ปริศนาแรกจากฉันคำแนะนำสำหรับการปรับปรุงที่ได้รับยินดี!
สถานการณ์คือ; คุณทำงานเป็นผู้จัดการของ บริษัท ล่องแก่ง ทุกเช้าคุณจะได้รับรายชื่อการจองและคุณต้องเรียงมันเป็นแพ เขียนโปรแกรมหรือฟังก์ชั่นในภาษาที่คุณเลือกซึ่งทำเพื่อคุณ
แพแต่ละแพมีn
ลูกค้าได้สูงสุดและการจองแต่ละครั้งสำหรับกลุ่มที่มีตั้งแต่ 1 ถึงn
คน (รวม) ต้องปฏิบัติตามกฎต่อไปนี้
อาจไม่มีการแยกกลุ่ม หากพวกเขาจองด้วยกันพวกเขาจะต้องอยู่ในแพเดียวกัน
จำนวนแพต้องลดให้น้อยที่สุด
ภายใต้กฎก่อนหน้าทั้งสองกลุ่มจะต้องกระจายให้มากที่สุดเท่าที่จะทำได้ระหว่างแพ
ปัจจัยการผลิต
จำนวนn
(คุณอาจคิดว่านี่เป็นจำนวนเต็มบวก) และขนาดของการจองทั้งหมด นี่อาจเป็นอาร์เรย์รายการหรือโครงสร้างข้อมูลที่คล้ายกันหากภาษาของคุณรองรับสิ่งดังกล่าว ทั้งหมดเหล่านี้จะเป็นจำนวนเต็มบวกระหว่าง 1 n
และ ลำดับของการจองไม่ได้ถูกกำหนดไว้และไม่สำคัญ
เอาท์พุต รายการหมายเลขการจองแบ่งเป็นโหลดแพ การจัดกลุ่มจะต้องระบุอย่างไม่น่าสงสัยเช่น;
- รายการหรืออาร์เรย์ของอาร์เรย์
- รายการที่คั่นด้วยเครื่องหมายจุลภาคสำหรับแต่ละแพ ขึ้นบรรทัดใหม่แต่ละแพ
วิธีที่คุณใช้กฎข้อที่สามนั้นขึ้นอยู่กับคุณ แต่สิ่งนี้อาจเกี่ยวข้องกับการค้นหาอัตราการครอบครองแพโดยเฉลี่ยและลดความเบี่ยงเบนจากกฎให้น้อยที่สุดเท่าที่จะทำได้ นี่คือกรณีทดสอบบางส่วน
n Bookings Output
6 [2,5] [5],[2]
4 [1,1,1,1,1] [1,1,1],[1,1]
6 [2,3,2] [2,2],[3]
6 [2,3,2,3] [2,3],[2,3]
6 [2,3,2,3,2] [2,2,2],[3,3]
12 [10,8,6,4,2] [10],[8,2],[6,4]
6 [4,4,4] [4],[4],[4]
12 [12,7,6,6] [12],[7],[6,6]
ใช้กฎมาตรฐานรหัสที่สั้นที่สุดชนะ มีความสุข!
แก้ไข; วิธีที่แนะนำในการกำหนดอย่างเท่าเทียมกันเท่าที่จะทำได้สำหรับกฎข้อที่สาม
เมื่อจำนวนแพr
ได้รับการพิจารณา (ขึ้นอยู่กับกฎข้อที่สอง), อัตราการเข้าพักเฉลี่ยสามารถคำนวณได้จากข้อสรุปกว่าการจองและหารด้วยa
r
สำหรับแต่ละแพเบี่ยงเบนจากการเข้าพักเฉลี่ยที่สามารถพบได้โดยใช้d(x) = abs(n(x)-a)
ที่เป็นจำนวนของผู้คนในแต่ละแพและn(x)
1 <= x <= r
สำหรับบางคนอย่างต่อเนื่อง, ฟังก์ชั่น valued เดียวf(y)
ซึ่งเป็นบวกอย่างเคร่งครัดและมีบวกอย่างเคร่งครัดแรกและที่ไม่ใช่เชิงลบอนุพันธ์ที่สองสำหรับการบวกทั้งหมดy
เรากำหนดปริมาณที่ไม่ใช่เชิงลบเป็นผลรวมของทั้งหมดF
f(d(x)), 1 <= x <= r
ตัวเลือกใด ๆ ของการจัดสรรแพที่ตรงกับกฎสองข้อแรกและที่F
เท่ากับค่าต่ำสุดทั่วโลกจะเป็นไปตามกฎข้อที่สามด้วย
g(y) = y
(ศูนย์ที่สองมาก่อน) หรือg(y) = y²
(ก่อนจะลดลงเหลือศูนย์เมื่อy = 0
)