मैं एक बेकरी में काम करता हूं जो गेहूं, राई, जौ, अनाज और फ्रेंच ब्रेड परोसता है, लेकिन बेकर को थोड़ा अजीब लगता है - वह रोटियों को यादृच्छिक क्रम में ढेर करता है, और कभी-कभी अंत में कुछ अलमारियों को खाली छोड़ देता है।
प्रत्येक दिन, एक ही ग्राहक आता है और प्रत्येक रोटी के एक रोटी के लिए पूछता है, लेकिन मुश्किल बात यह है, वह एक जर्मोफोब है, इसलिए जब मैं उसका बैग भरता हूं, तो मैं लगातार चयन में दो आसन्न अलमारियों से रोटियां नहीं ले सकता।
आसन्न अलमारियों के बीच चलने में एक सेकंड लगता है। यह एक व्यस्त स्टोर है; रोटियों के किसी भी यादृच्छिक विन्यास के लिए, मैं प्रत्येक अद्वितीय पाव रोटी में से एक को प्राप्त करने में लगने वाले समय को कम करना चाहूंगा। मैं किसी भी शेल्फ पर शुरू और समाप्त कर सकता हूं।
यदि आज का आदेश है W B W G F R W
, तो एक संभावित मार्ग 0, 3, 5, 1, 4
कुल 12 सेकंड के लिए है:abs(3-0) + abs(5-3) + abs(1-5) + abs(4-1) = 12
( 1, 2, 3, 4, 5
काम नहीं करता है, क्योंकि रोटी आसन्न अलमारियों से लगातार ली जाती है।)
यदि यह B W B G B F B R B W B F
संभव मार्ग है 1, 3, 5, 7, 10
, तो कुल 9 सेकंड के लिए।
प्रबंधक हमेशा सुनिश्चित करता है कि एक संभावित समाधान है, इसलिए मुझे खराब इनपुट को पकड़ने के बारे में चिंता करने की आवश्यकता नहीं है। वह आमतौर पर मुझे एक फ़ाइल में आदेश भेजता है, लेकिन अगर मैं चाहता हूं, तो मैं इसे एसटीडीआईएन पर टाइप कर सकता हूं या इसे अलग तरीके से पढ़ सकता हूं। मुझे डिफ़ॉल्ट I / O नियमों के अनुसार, सर्वोत्तम पथ के सूचकांकों के साथ-साथ उसके समय को भी प्रिंट करने का कार्यक्रम चाहिए ।
संक्षेप में:
- 5 प्रकार की रोटी।
- लोफ ऑर्डर यादृच्छिक क्रम और लंबाई के तार के रूप में प्रकट होता है।
- प्रत्येक अद्वितीय पाव रोटी में से एक का चयन करना चाहिए।
- आसन्न लगातार चयन नहीं कर सकते।
- चयन सूचकांकों के बीच की दूरी कम से कम करें।
- अमान्य इनपुट के बारे में चिंता करने की ज़रूरत नहीं है।
- डिफ़ॉल्ट I / O नियम लागू होते हैं।
यह कोड-गोल्फ , सबसे छोटी बाइट गिनती जीत है।
'WBWG FRW'
एक वैध इनपुट भी है?
0+3+5+1+4=13
लेकिन1+3+5+7+10=26
, नहीं9
।