4
การกระจายที่นั่งรัฐสภา
บทนำ ในการเลือกตั้งทั่วไปเราต้องการคำนวณราคาคงที่ต่อที่นั่งของรัฐสภา ซึ่งหมายความว่าสำหรับN >= 0ที่นั่งที่จะแจกจ่ายและรายชื่อnsคะแนนต่อปาร์ตี้เราต้องการค้นหาหมายเลขdดังกล่าว sum(floor(n/d) for n in ns) == N เพื่อให้สิ่งต่าง ๆ น่าสนใจ (และเหมือนโลกแห่งความเป็นจริง) เราได้เพิ่มข้อเท็จจริงสองประการ: ทั้งสองฝ่ายสามารถรวมตัวกันเป็น 'พันธมิตร' เพื่อให้ที่นั่งได้รับ 'พันธมิตร' ด้วยคะแนนรวมสำหรับทุกฝ่ายในนั้น จากนั้นที่นั่งที่ 'พันธมิตร' ได้รับจะถูกแยกออกระหว่างฝ่ายในแบบเดียวกัน (ค้นหาตัวหาร ฯลฯ ) ปาร์ตี้ที่ไม่ผ่านการลงคะแนนเสียงในระดับที่แน่นอน (เช่น 3.25%) จะได้รับ 0 ที่นั่งโดยอัตโนมัติและการโหวตจะไม่นับสำหรับ 'การรวม' ท้าทาย คุณจะได้รับ: รายการของรายการแต่ละรายการซ้อนกันประกอบด้วยจำนวนเต็ม (จำนวนโหวต) และมีความยาว 1 สำหรับงานปาร์ตี้เดี่ยวหรือยาว 2 สำหรับ 'พันธมิตร' เปอร์เซ็นต์การโหวตน้อยที่สุด (aka "บาร์" สำหรับ "เขื่อนกั้นน้ำ") …