पृष्ठभूमि
एक पल के लिए कल्पना करें कि आपके पास दिमाग सुन्न करने वाला उबाऊ काम है। हर सुबह, आपको उन कार्यों का एक संग्रह दिया जाता है, जिन्हें आपको उस दिन काम करना चाहिए। प्रत्येक कार्य की एक निश्चित अवधि होती है, और एक बार शुरू होने के बाद, इसे एक बार में पूरा किया जाना चाहिए। आपका बॉस सुस्ती को बर्दाश्त नहीं करेगा, इसलिए यदि ऐसे कार्य हैं जिन्हें आप घर जाने से पहले भी पूरा कर सकते हैं, तो आपको उनमें से एक पर काम करना होगा (आप कौन सा चुन सकते हैं)। इसके विपरीत, यदि शेष सभी कार्यों के लिए आपको ओवरटाइम काम करने की आवश्यकता होती है, तो आप जल्दी घर जा सकते हैं! इस प्रकार आपका लक्ष्य चतुर शेड्यूलिंग द्वारा आपके कार्यदिवस की लंबाई को कम करना है।
मजेदार तथ्य: यह आलसी नौकरशाही की समयबद्धता समस्या का एक प्रकार है , और यह एनपी-हार्ड ( स्रोत ) है।
इनपुट
आपके पास दो इनपुट हैं: आपके कार्यदिवस (एक सकारात्मक पूर्णांक 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]
और भी बेहतर है: आप 7 समय इकाइयों के लिए काम करते हैं, और फिर शेष सभी कार्यों में 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