আপনার মিশনটি এমন একটি অ্যালগরিদম (প্রোগ্রাম বা ফাংশন) তৈরি করা যা কোনও পরিবাহক বেল্ট থেকে ব্যাগের মধ্যে ফল প্যাকিংকে খুচরা বিক্রেতাদের কাছে প্রেরণ করতে, বিপুল সংখ্যক ব্যাগের জন্য অনুকূল করে তুলতে পারে।
প্রতিটি ব্যাগের কমপক্ষে একটি নির্দিষ্ট পরিমাণের ওজন করতে হয়, তবে যে কোনও ওজনের অতিরিক্ত লাভ হ'ল যেহেতু সেই ওজন অন্য ব্যাগটি পূরণ করতে ব্যবহৃত হতে পারে। আপনার ব্যাগিং মেশিনটি সর্বদা n
সারি থেকে n
ফলের সন্ধান করে এবং প্রক্রিয়াধীন (একক) ব্যাগে কেবল এই ফলের যে কোনওটিকে যুক্ত করা বেছে নিতে পারে । এটি n
সারিতে থাকা প্রথম উপাদানগুলির বাইরে দেখতে পারে না । ব্যাগটিতে ইতিমধ্যে কত ওজন রয়েছে তা প্রোগ্রামটি সর্বদা জানে।
এটি কল্পনা করার আরেকটি উপায় হ'ল শেষে একটি আকারের লোডিং অঞ্চল সহ একটি পরিবাহক বেল্ট রয়েছে n
, সেখান থেকে কোনও নতুন ফল আসার আগে একটি ফল নিতে হবে। শেষে যে কোনও বাকী ফল এবং একটি অ-পূর্ণ ব্যাগ বাতিল করা হয়।
ইনপুট
- সারিতে ফলের ওজনের তালিকা / অ্যারে (ধনাত্মক পূর্ণসংখ্যা)
- ব্যাগগুলির জন্য সর্বনিম্ন মোট ওজন (ধনাত্মক পূর্ণসংখ্যা)
- সন্ধানী
n
(ইতিবাচক পূর্ণসংখ্যা)
আউটপুট
আপনার অ্যালগরিদমের সমস্ত ব্যাগের ফলের ওজনগুলি আপনার এবং আপনার ভাষার জন্য উপযুক্ত যে কোনও উপায়েই ফিরে আসবে, সে স্টিডিন হোক বা কোনও ফেরতের মান বা অন্য কিছু হোক। আপনার কম্পিউটারে এক মিনিটের মধ্যে প্রোগ্রামটি চালানো এবং আপনার স্কোর গণনা করতে সক্ষম হওয়া উচিত।
উদাহরণ
Total weight 1000, lookahead of 3 and fruit queue:
[171,163,172,196,156,175,162,176,155,182,189,142,161,160,152,162,174,172,191,185]
One possible output (indented to show how the lookahead affects the bagging):
[171,163,172, 156,175, 176]
[162, 155,182,189, 161,160]
[152,162,174,172,191,185]
স্কোরিং
আপনার অ্যালগরিদমটি আমি আপনার জন্য প্রস্তুত 10000 কমলা একটি ব্যাচে ছয় রানে পরীক্ষা করা হবে, উভয় প্রান্তে অন্তর্ভুক্ত করে 2 থেকে 7 অবধি লক হেডগুলিতে। আপনি এগুলিকে কমপক্ষে 1000 ইউনিট ওজনের ব্যাগে প্যাক করুন। কমলা সাধারণত 170 ওজনের ওজন এবং 13 এর মানক বিচ্যুতি দিয়ে বিতরণ করা হয়, যদি এটি কোনও উপকার হয়।
আপনার স্কোর ছয় রান থেকে ব্যাগের সমষ্টি হবে। সর্বোচ্চ স্কোর জয়। স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।
হাস্কেলের সাধারণ উদাহরণ বাস্তবায়ন এবং পরীক্ষার স্যুট বয়লারপ্লেট