मुझे लगता है कि मैंने खुद को अचार में जकड़ लिया है। सचमुच। मैंने फर्श पर अचारों का एक गुच्छा गिरा दिया और अब वे सभी बिखरे हुए हैं! मुझे आपको उन सभी को इकट्ठा करने में मदद करने की आवश्यकता है। ओह, क्या मैंने उल्लेख किया कि मेरे पास मेरी कमान में रोबोटों का एक समूह है? (वे भी सभी जगह बिखरे हुए हैं; मैं चीजों को व्यवस्थित करने में बहुत बुरा हूं।)
आपको निम्न के रूप में इनपुट लेना होगा:
P.......
..1..2..
.......P
........
P3PP...4
.......P
यानी, या तो की कई पंक्तियों .
, P
(अचार), या एक अंकों (रोबोट की आईडी)। (आप मान सकते हैं कि प्रत्येक पंक्ति समान लंबाई की है, जिसके साथ गद्देदार है .
।) आप इन पंक्तियों को एक सरणी के रूप में इनपुट कर सकते हैं, या STDIN से स्लरप कर सकते हैं, या अल्पविराम से अलग की गई एकल पंक्ति में पढ़ सकते हैं, या एक फ़ाइल पढ़ सकते हैं, या जो कुछ भी आप करेंगे। इनपुट लेना पसंद है।
आपका आउटपुट n
लाइनों के रूप में होना चाहिए , जहां n
उच्चतम रोबोट आईडी है। (रोबोट आईडी हमेशा 1 पर शुरू होने वाली अनुक्रमिक होगी।) प्रत्येक पंक्ति में अक्षर L
(बाएं), R
(दाएं), U
(ऊपर), और D
(नीचे) से गठित रोबोट का पथ होगा । उदाहरण के लिए, यहाँ उस पहेली के लिए एक उदाहरण आउटपुट है:
LLU
RDR
LRRR
D
यह भी हो सकता है
LLU RDR LRRR D
या
["LLU","RDR","LRRR","D"]
या कोई भी प्रारूप जो आप चाहते हैं, जब तक आप बता सकते हैं कि समाधान क्या होना चाहिए।
आपका लक्ष्य इष्टतम आउटपुट ढूंढना है, जो कि कम से कम चरण है। चरणों की मात्रा को सभी रोबोटों से चरणों की सबसे बड़ी मात्रा के रूप में गिना जाता है। उदाहरण के लिए, उपरोक्त उदाहरण में 4 चरण थे। ध्यान दें कि कई समाधान हो सकते हैं, लेकिन आपको केवल एक आउटपुट की आवश्यकता है।
स्कोरिंग:
- आपका कार्यक्रम प्रत्येक 5 (बेतरतीब ढंग से उत्पन्न) परीक्षण मामलों के साथ चलाया जाएगा।
- आपको प्रत्येक रन से चरणों को जोड़ना होगा, और यह आपका स्कोर होगा।
- सबसे कम कुल, संचयी स्कोर जीत जाएगा।
- आप इन विशिष्ट जानकारी के लिए हार्ड-कोड नहीं कर सकते हैं। आपका कोड किसी अन्य इनपुट के लिए भी काम करना चाहिए।
- रोबोट एक दूसरे से गुजर सकते हैं।
- आपका कार्यक्रम नियतात्मक होना चाहिए, यानी हर रन के लिए एक ही आउटपुट। आप एक यादृच्छिक संख्या जनरेटर का उपयोग कर सकते हैं, जब तक यह वरीयता प्राप्त है और लगातार समान संख्या में क्रॉस-प्लेटफॉर्म का उत्पादन करता है।
- प्रत्येक इनपुट के लिए आपका कोड 3 मिनट के भीतर चलना चाहिए। (अधिमानतः बहुत कम)
- एक टाई के मामले में, अधिकांश अपवोट्स जीत जाएंगे।
यहाँ परीक्षण के मामले हैं। वे बेतरतीब ढंग से एक छोटी रूबी स्क्रिप्ट के साथ उत्पन्न हुए थे जो मैंने लिखा था।
P.......1.
..........
P.....P...
..P.......
....P2....
...P.P....
.PP..P....
....P....P
PPPP....3.
.P..P.P..P
....P.....
P....1....
.P.....PP.
.PP....PP.
.2.P.P....
..P....P..
.P........
.....P.P..
P.....P...
.3.P.P....
..P..P..P.
..1....P.P
..........
.......2P.
...P....P3
.P...PP..P
.......P.P
..P..P..PP
..P.4P..P.
.......P..
..P...P...
.....P....
PPPP...P..
..P.......
...P......
.......P.1
.P..P....P
P2PP......
.P..P.....
..........
......PP.P
.P1..P.P..
......PP..
P..P....2.
.P.P3.....
....4..P..
.......PP.
..P5......
P.....P...
....PPP..P
सौभाग्य, और अचार वहाँ बहुत लंबे समय के लिए बैठते हैं, या वे खराब नहीं होगा!
ओह, और क्यों अचार, आप पूछते हैं?
क्यों नहीं?