वोटों की गिनती करने का समय आ गया है!
आज मेरे पूरे देश में स्थानीय चुनाव हैं। यहाँ, D'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