পটভূমি
এক মুহুর্তের জন্য কল্পনা করুন যে আপনার মন-বোকা বোরিং কাজ রয়েছে। প্রতিদিন সকালে, আপনাকে কার্যগুলির একটি সংকলন দেওয়া হয় যা আপনার সেদিন কাজ করা উচিত। প্রতিটি টাস্কের একটি নির্দিষ্ট সময়কাল থাকে এবং একবার শুরু হয়ে গেলে এটি অবশ্যই একবারে সম্পন্ন করতে হবে। আপনার বস অলসতা সহ্য করবেন না, তাই বাড়িতে যাওয়ার আগে যদি এমন কিছু কাজ আপনি এখনও শেষ করতে পারেন তবে আপনাকে অবশ্যই তার একটিতে কাজ করতে হবে (আপনি কোনটি চয়ন করতে পারেন)। বিপরীতে, যদি বাকী সমস্ত কাজগুলির জন্য আপনাকে ওভারটাইম কাজ করার প্রয়োজন হয়, আপনি তাড়াতাড়ি বাড়ি যাবেন! সুতরাং আপনার লক্ষ্যটি হ'ল চৌকস সময়সূচী দ্বারা আপনার কর্ম দিবসের দৈর্ঘ্য হ্রাস করা।
মজাদার ঘটনা: এটি অলস আমলাতন্ত্র সময়সূচী সমস্যার একটি বৈকল্পিক এবং এটি এনপি-হার্ড ( উত্স )।
ইনপুট
আপনার দুটি ইনপুট রয়েছে: আপনার L
কার্য দিবসে "টাইম ইউনিটগুলির সংখ্যা" (ধনাত্মক পূর্ণসংখ্যার ) এবং কার্যাদি সংগ্রহ (কার্যের পূর্ণসংখ্যার T
উপস্থাপনকারী ধনাত্মক পূর্ণসংখ্যার একটি খালি অ্যারে )। এগুলি যে কোনও ক্রমে, এবং কোনও যুক্তিসঙ্গত বিন্যাসে নেওয়া যেতে পারে। অ্যারেতে T
সময়কাল সহ বেশি কাজ থাকতে পারে L
তবে এটি অন্ততপক্ষে অন্তত একটি কার্য অন্তর্ভুক্ত করার গ্যারান্টিযুক্ত L
।
আউটপুট
একটি বৈধ সময়সূচী হ'ল কার্যগুলির একটি উপসেট S ⊆ T
যা sum(S) ≤ L
এবং প্রতিটি কাজের মধ্যে S
(বহুগুণ গণনা করা) সময়সীমা কঠোরভাবে বেশি হয় L - sum(S)
। আপনার আউটপুটটি কোনও বৈধ সময়সূচির ক্ষুদ্রতম সম্ভাব্য যোগফল হবে। অন্য কথায়, আপনি আজ কাজ করতে হবে ন্যূনতম সময় ইউনিট আউটপুট।
উদাহরণ
ইনপুট বিবেচনা করুন
L = 9
T = [3,4,4,4,2,5]
আপনার দিন নির্ধারণের একটি উপায় হ'ল [4,4]
: আপনি 8 টি ইউনিটে দুটি কাজ শেষ করেছেন এবং আপনার 1 ইউনিট বাকি রয়েছে। যেহেতু কোনও 1-ইউনিটের কাজ উপলভ্য নয়, আপনি ঘরে যেতে পারেন। তবে তফসিলটি [2,5]
আরও ভাল: আপনি time টি সময় ইউনিটের জন্য কাজ করেন এবং তারপরে বাকি সমস্ত কার্যগুলিতে 3 বা ততোধিক সময় ইউনিট লাগবে। শিডিউলটি [2,4]
বৈধ নয়, যেহেতু 6 টি ইউনিট কাজ করার পরেও আপনার কাছে 3-ইউনিটের কাজ শেষ করার জন্য পর্যাপ্ত সময় থাকতে হবে। 7 টি ইউনিট অনুকূল হতে দেখা যায়, সুতরাং সঠিক আউটপুট 7
।
বিধি এবং স্কোরিং
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জয়, এবং মান লুফোলগুলি অনুমোদিত নয়। সময় বেঁধে দেওয়া হয় না, তাই নিষ্ঠুরভাবে বাধ্য করা পুরোপুরি গ্রহণযোগ্য।
পরীক্ষার মামলা
এগুলি বিন্যাসে দেওয়া হয় L T -> output
।
1 [1,2] -> 1
6 [4,1] -> 5
7 [7,7,9] -> 7
9 [3,4,4,4,2,5] -> 7
20 [6,2,3,12,7,31] -> 17
42 [7,7,7,7,8,8,8] -> 36
42 [7,7,7,7,7,8,8,8] -> 35
42 [7,7,7,7,7,7,8,8,8] -> 36
16 [1,2,3,4,5,6,7,8,9,10] -> 13
37 [15,27,4,1,19,16,20,26,29,18] -> 23
22 [24,20,8,8,29,16,5,5,16,18,4,9] -> 18
80 [10,22,11,2,28,20,27,6,24,9,10,6,27,2,15,29,27] -> 71
59 [26,28,5,4,7,23,5,1,9,3,7,15,4,23,7,19,16,25,26] -> 52