আমার কাছ থেকে প্রথম ধাঁধা, উন্নতির জন্য পরামর্শ আনন্দের সাথে গৃহীত হয়েছে!
দৃশ্যটি হ'ল; আপনি একটি হোয়াইটওয়াটার রাফটিং সংস্থার পরিচালক হিসাবে কাজ করেন। প্রতিদিন সকালে, আপনাকে বুকিংয়ের একটি তালিকা দেওয়া হবে এবং আপনাকে সেগুলি রাফ্ট লোডগুলিতে বাছাই করতে হবে। আপনার নির্বাচিত ভাষায় এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা এটি আপনার জন্য করে।
প্রতিটি ভেলাটি সর্বাধিক n
ক্লায়েন্টকে ধারণ করে এবং প্রতিটি বুকিং 1 এবং n
লোকের মধ্যে (অন্তর্ভুক্ত) একটি গোষ্ঠীর জন্য । নিম্নলিখিত নিয়মগুলি অবশ্যই পালন করা উচিত;
কোনও গোষ্ঠী বিভক্ত নাও হতে পারে। যদি তারা একসাথে বুকিং দেয় তবে তাদের অবশ্যই সবাইকে একই ভেলাতে থাকতে হবে।
রাফসের সংখ্যা অবশ্যই হ্রাস করতে হবে।
দুটি পূর্ববর্তী নিয়মের সাপেক্ষে, দলগুলিকে ভেলাগুলির মধ্যে যথাসম্ভব সমানভাবে ছড়িয়ে দিতে হবে।
ইনপুট।
সংখ্যা n
(আপনি ধরে নিতে পারেন এটি ইতিবাচক পূর্ণসংখ্যা) এবং সমস্ত বুকিংয়ের আকার। আপনার ভাষা যদি এ জাতীয় জিনিসগুলিকে সমর্থন করে তবে এটি কোনও অ্যারে, তালিকা বা অনুরূপ ডেটা কাঠামো হতে পারে। এই সমস্ত 1 এবং 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
। কিছু অবিচ্ছিন্ন, একক-মূল্যবান ফাংশনের জন্য f(y)
, যা কঠোরভাবে ইতিবাচক এবং সমস্ত ধনাত্মকগুলির জন্য কঠোর ইতিবাচক প্রথম এবং অ-নেতিবাচক দ্বিতীয় ডেরিভেটিভস রয়েছে y
, আমরা একটি অ-নেতিবাচক পরিমাণকে সংজ্ঞায়িত করি, সমস্তটির F
যোগফল হিসাবে f(d(x)), 1 <= x <= r
। প্রথম দুটি নিয়ম সন্তুষ্ট করে ভেলা বরাদ্দের যে কোনও পছন্দ, এবং যেখানে F
সর্বনিম্ন ন্যূনতমের সমান হয় তৃতীয় নিয়মও সন্তুষ্ট করবে।
g(y) = y
(দ্বিতীয় g(y) = y²
ডেরিভেট শূন্য ) বা (প্রথমে শূন্য যখন derviate y = 0
) যদিও।