Minecraft इन्वेंट्री प्रबंधन कठिन है। आपके पास 17 हीरे हैं, लेकिन आपको एक मुग्ध टेबल, एक पिकैक्स और एक तलवार तैयार करने के लिए 7 की आवश्यकता है। क्या आप उन्हें उठाते हैं और 7 बार राइट क्लिक करते हैं? या क्या आप एक बार राइट क्लिक करते हैं और दो बार राइट क्लिक करते हैं और 7 लेफ्ट ले जाते हैं? यह बहुत भ्रामक है!
आप में से जो अब भ्रमित हैं, चिंता न करें, मैं इसे एक सेकंड में समझाता हूँ
चुनौती
वस्तुओं के ढेर और एक वांछित राशि के आकार को देखते हुए, उस राशि को प्राप्त करने के लिए कम से कम क्लिक की संख्या निर्धारित करें। आपको केवल दोनों इनपुट के लिए 64 तक की आवश्यकता है और आप मान सकते हैं कि आपके पास अनंत इन्वेंट्री स्लॉट हैं। आप ड्रैग-टू-डिस्ट्रीब्यूट ट्रिक का उपयोग नहीं कर सकते।
परिभाषाएं
सूची स्लॉट जहां आइटम स्टोर कर सकते हैं का एक संग्रह है।
एक स्लॉट आपकी इन्वेंट्री में एक स्टोरेज स्पेस है जहां आप एक प्रकार का आइटम रख सकते हैं।
एक ढेर में एक ही समूह में रखा मदों की एक संख्या है। इस चुनौती के प्रयोजनों के लिए, एक स्टैक केवल एक ही स्थान पर वस्तुओं का एक गुच्छा है (इसलिए स्टैक-आकार को अनदेखा करें)
कर्सर अपने नुकीले thingy है। वह कर्सर। इसमें आइटम "उस पर" हो सकते हैं; अन्य शब्दों में, यदि आपने एक स्लॉट पर क्लिक किया और आइटम उठाए, तो आपके द्वारा उठाए गए आइटम "कर्सर पर" हैं जब तक आप उन्हें नीचे नहीं डालते।
विशेष विवरण
चार संभावित स्थितियां हैं। या तो आपके पास अपने कर्सर पर एक आइटम है या आप नहीं हैं, और या तो आपने बाएं क्लिक किया या आपने राइट क्लिक किया।
यदि आपके पास अपने कर्सर पर कोई आइटम नहीं है और आप एक स्लॉट पर बाएं क्लिक करते हैं, तो आप पूरे स्टैक को उठाते हैं।
यदि आपके पास अपने कर्सर पर कोई आइटम नहीं है और आप किसी स्लॉट पर राइट-क्लिक करते हैं, तो आप आधा स्टैक उठाते हैं, गोल।
यदि आपके पास अपने कर्सर पर एक आइटम है और आप किसी स्लॉट पर बाएं-क्लिक करते हैं, तो आप सभी आइटम को उस स्लॉट में रखते हैं। (आप सभी Minecraft खिलाड़ियों के लिए, आपके पास इस चुनौती के लिए> 64 आइटम नहीं होंगे और वे सभी 64-स्टैकेबल हैं, और आपके पास केवल एक प्रकार है, इसलिए आइटम स्वैप यहां लागू नहीं होता है)
यदि आपके पास अपने कर्सर पर कोई आइटम है और आप किसी स्लॉट पर राइट-क्लिक करते हैं, तो आप उस स्लॉट में एक आइटम रखते हैं।
तो, आप दिए गए सभी आइटम (पहले इनपुट, या दूसरा; आप ऑर्डर चुन सकते हैं) को एक स्लॉट में शुरू करते हैं, और आप अपने कर्सर में वांछित राशि (अन्य इनपुट) होने के साथ समाप्त करना चाहते हैं।
एक उदाहरण के माध्यम से चलते हैं। कहते हैं कि आप 17 वस्तुओं से शुरू करते हैं और आप चाहते हैं 7. सबसे पहले, आप स्टैक पर राइट-क्लिक करें, जिसका मतलब है कि आपने 9 उठाए हैं और उस स्लॉट में 8 हैं। फिर, यदि आप फिर से स्टैक पर राइट-क्लिक करते हैं, तो आप एक आइटम को स्लॉट में वापस रखते हैं, जो आपको 8 और स्लॉट के साथ छोड़ देता है। अंत में, आप फिर से राइट-क्लिक करते हैं और आपके पास 7 हैं और स्लॉट में 10. है। आप वापस लौटेंगे 3(क्लिकों की संख्या)।
यदि आप मुझे बाहर जाने के लिए क्लिक करते हैं, तो कृपया मुझे बताएं और मैं उदाहरण संपादित करूंगा: P
परीक्षण के मामलों
ये मैन्युअल रूप से उत्पन्न होते हैं, इसलिए कृपया मुझे बताएं कि क्या कोई त्रुटि है। मैं राइट-क्लिक राइट के माध्यम से इन्वेंट्री प्रबंधन करता हूं इसलिए मुझे इष्टतम इन्वेंट्री प्रबंधन के साथ अनुभव नहीं है: पी
Given, Desired -> Output
17, 7 -> 3
64, 8 -> 5
63, 8 -> 5
10, 10 -> 1
10, 0 -> 0 # note this case
25, 17 -> 7
स्पष्टीकरण
यह चुनौती गैर-Minecraft खिलाड़ियों के लिए मुश्किल हो सकती है, मुझे नहीं पता। यहाँ कुछ स्पष्टीकरण दिए गए हैं।
64, 8 -> 5 क्योंकि आप राइट क्लिक का उपयोग करके 32 उठाते हैं, इसे नीचे रखें, 16 उठाएँ, इसे नीचे रखें, फिर 8 उठाएँ।
63, 8 -> 5 एक ही कारण के लिए।
25, 17 -> 7 क्योंकि आप 13 उठाते हैं, इसे नीचे रखें, बचे हुए 12 में से 6 उठाएँ, 2 को बचे हुए ढेर में रखें, और फिर 4 को 13 में कर्सर रखें, और फिर उन्हें उठाएँ।
नियम
- मानक खामियां लागू होती हैं
- आप ऐसा मान सकते हैं
0 <= desired <= given <= 64 - आप किसी भी क्रम में इनपुट ले सकते हैं और किसी भी उचित प्रारूप में I / O कर सकते हैं
0,[n], संक्रमण हो सकता है: से (1) 0,[a,b,...]के लिए a,[b,...], b,[a,...], ceil(a/2),[floor(a/2),b,...], या ceil(b/2),[a,floor(b/2),...]; या (2) से x,[a,b,...]( x>0) के लिए x-1,[a+1,b,...], x-1,[a,b+1,...], x-1,[a,b,...,1], 0,[a+x,b,...], 0,[a,b+x,...], 0,[a,b,...,x]। चुनौती से कम से कम संभव संक्रमण को खोजने के लिए तो है 0,[g]जहां जी को दिया जाता है t,Lजहां tवांछित लक्ष्य है और Lकिसी भी सूची है?