ถึงเวลา ... เพื่อนับคะแนน!
วันนี้มีการเลือกตั้งท้องถิ่นทั่วประเทศของฉัน ที่นี่จำนวนที่นั่งสำหรับแต่ละบุคคลที่จะตัดสินใจใช้วิธี Hondt ศิลปวัตถุ เป้าหมายของคุณคือการใช้โปรแกรมหรือฟังก์ชั่นที่จะตัดสินจำนวนที่นั่งที่แต่ละฝ่ายได้รับในจำนวนไบต์ที่สั้นที่สุด
สำหรับวิธีนี้มีจำนวนที่นั่งที่แน่นอนในการแจกจ่ายและทำเช่นนั้น:
- ทุกฝ่ายมีการกำหนดหมายเลขตัวแปรซึ่งเริ่มจากจำนวนคะแนนที่ได้รับ
- จากนั้นที่นั่งแรกจะถูกมอบให้กับบุคคลที่มีค่ามากที่สุดในตัวแปรของพวกเขาและจากนั้นค่าสำหรับพรรคนั้นจะกลายเป็นจำนวนคะแนนรวมหารด้วย
1+seatsปัดเศษลงซึ่งseatsเป็นจำนวนที่นั่งที่มีอยู่แล้ว (ดังนั้นหลังจากได้รับ ก่อนคะแนนของพวกเขาจะถูกหารด้วย 2 และ 3 หลังจากได้ที่นั่งที่สอง) - หลังจากนั้นฝ่ายต่างๆจะทำการโหวตอีกครั้ง กระบวนการนี้จะดำเนินต่อไปจนกว่าจะมีการกำหนดที่นั่งทั้งหมด
หากจำนวนสูงสุดคือการเสมอกันระหว่างสองฝ่ายหรือมากกว่าฝ่ายนั้นจะได้รับการแก้ไขแบบสุ่ม (ต้องเป็นแบบสุ่มมันไม่สามารถเป็นอันดับแรกของทั้งสองฝ่ายในรายการ)
อินพุต
คุณจะได้รับหมายเลขNซึ่งจะระบุจำนวนที่นั่งที่มีอยู่และรายการคะแนนโหวตที่แต่ละฝ่ายได้รับในรูปแบบที่คุณต้องการ ตัวอย่าง:
25
12984,7716,13009,4045,1741,1013
เอาท์พุต
คุณควรส่งรายการที่นั่งที่แต่ละฝ่ายได้รับ ในตัวอย่างข้างต้นมันจะเป็นอย่างไร
8,5,9,2,1,0
พวกเขาควรอยู่ในลำดับเดียวกันกับฝ่ายต่างๆในอินพุต
ตัวอย่าง
5
3,6,1
outputs: 2,3,0
135
1116259,498124,524707,471681,359705,275007,126435
outputs: 45,20,21,19,14,11,5
โบนัส
โบนัส -20%ถ้าใช้ชื่อปาร์ตี้เป็นอินพุทและให้พวกมันในเอาท์พุทเช่น:
25
cio:12984,pcc:7716,irc:13009,icb:4045,cub:1741,bb:1013
outputs
cio:8
pcc:5
irc:9
icb:2
cub:1
bb:0