সময় এসেছে ... ভোট গণনা করার!
আজ আমার পুরো দেশে স্থানীয় নির্বাচন হচ্ছে। এখানে ডি পার্ট পদ্ধতি ব্যবহার করে প্রতিটি দলের আসন সংখ্যা নির্ধারিত হয় । আপনার লক্ষ্যটি এমন একটি প্রোগ্রাম বা ফাংশন বাস্তবায়ন করা যা সংক্ষিপ্ত পরিমাণ বাইটে প্রতিটি দল কত আসন পাবে তা স্থির করবে।
এই পদ্ধতির জন্য বিতরণ করার জন্য নির্দিষ্ট সংখ্যক আসন রয়েছে এবং এটি এর মতো হয়ে গেছে:
- প্রতিটি দলকে একটি পরিবর্তনশীল নম্বর বরাদ্দ করা হয়, যা এটি পেয়েছে ভোটের সংখ্যা থেকে শুরু হয়।
- তারপরে প্রথম আসনটি সেই দলের কাছে দেওয়া হয় যার ভেরিয়েবলের সর্বাধিক মূল্য রয়েছে এবং তারপরে সেই দলের জন্য সেই মানটি তাদের মোট ভোটের সংখ্যা হয়ে যায় বিভক্ত
1+seats, গোল করে, সেখানেseatsইতিমধ্যে রয়েছে আসন সংখ্যা কোথায় (তাই পাওয়ার পরে? প্রথমত, তাদের ভোটগুলি 2 দ্বারা ভাগ করা হয়, এবং দ্বিতীয় আসন পাওয়ার পরে 3 দ্বারা)। - এরপরে দলগুলোর ভোট আবার তুলনা করা হয়। সমস্ত আসন নির্ধারিত না হওয়া পর্যন্ত প্রক্রিয়াটি অব্যাহত থাকে।
সর্বাধিক সংখ্যাটি যদি দুটি বা ততোধিক দলের মধ্যে একটি টাই হয় তবে তা এলোমেলোভাবে সমাধান করা হবে (এটি এলোমেলোভাবে হতে হবে, এটি তালিকার দুটিতে প্রথম হতে পারে না)।
ইনপুট
আপনি একটি নম্বর পাবেন Nযা উপলব্ধ আসনগুলির সংখ্যা এবং প্রতিটি পক্ষ প্রাপ্ত ভোটের একটি তালিকা, আপনি যে কোনও ফরম্যাটে পছন্দ করুন indicate উদাহরণ:
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