परिचय:
हालांकि मेरे पास मूल रूप से मेरे सिर में एक डच गीत था, जहां गीत के बोल हैं: " दोए 'एन स्टापेज नोर वोरेन, एन' एन स्टेपजे टेरुग " (जिसका अनुवाद " थोड़ा कदम आगे ले जाएं, और थोड़ा कदम पीछे हटें " "), जब मैंने पूर्ण गीतों की खोज की, मुझे एहसास हुआ कि वे केवल आगे-पीछे होते हैं, और कभी भी बग़ल में नहीं होते हैं।
इसलिए, अब मैं मिस्टर सी द स्लाइड मैन उर्फ डीजे कैस्पर - चा-चा स्लाइड के गीतों का उपयोग करता हूं इस चुनौती के लिए ।
यदि हम बाकी सब चीजों को नजरअंदाज करते हैं और केवल उल्लिखित मात्राओं सहित "बाएं", "दाएं", "वापस", और "हॉप" (मैं "हॉप" को आगे की ओर गिना जाता है) जैसे शब्दों को देखता हूं, तो पूर्ण गीत में निम्नलिखित सूची होगी ( मैं यहाँ संक्षिप्त परिचय LRBH का उपयोग कर रहा हूँ):
LBHRLLBHRLBHHRRLLLRLBHHHHRRLLLBHHHHHRLRLRLHRLLBHHLRLBHH
यहाँ एक पूरा करने योग्य जावास्क्रिप्ट कोड-स्निपेट (स्थान बचाने के लिए) में पूर्ण गीत के बोल, जहाँ चाल और मात्रा को समायोजित कोष्ठक से घिरा हुआ है:
चुनौती:
अब चुनौती पर ही। हम एक, दो, या तीन आदानों ले † । उनमें से एक सूचकांक-पूर्णांक की एक सूची है (इसलिए 0-अनुक्रमित के लिए गैर-नकारात्मक या 1-अनुक्रमित के लिए सकारात्मक)। (अन्य इनपुट वैकल्पिक हैं और चुनौती नियमों में समझाया गया है।)
प्रत्येक परीक्षण का मामला एक स्थिति में शुरू होगा {x=0, y=0}।
अब चाल और हटाने के गीत-सूची का उपयोग करें इनपुट-सूची के दिए गए सूचकांकों पर सभी चाल को । फिर चालों पर 'चलना' (इनपुट-सरणी के सबसे बड़े सूचकांक तक) और उस स्थिति को आउटपुट करें जिसे आप समाप्त करेंगे।
चाल के रूप में निर्देशांक बदल जाएगा:
- R: x+1
- L: x-1
- H: y+1
- B:y-1
चुनौती नियम:
- चाल-सूची को आप अपनी इच्छानुसार एक्सेस कर सकते हैं। An: एक अतिरिक्त इनपुट हो सकता है; डिस्क पर एक अलग फ़ाइल में हो सकता है जिसे आप पढ़ेंगे; आपके द्वारा उपयोग किए जाने वाले एक वर्ग-स्तरीय चर में हो सकता है। यह के रूप में होगा
L,R,BऔरH, हालांकि (एक स्ट्रिंग या चरित्र-सूची / सरणी हो सकता है) ताकि आप के रूप में चलता रहता है-सूची नहीं सहेजा जा सकता1है और-1या पूर्णांकों। - ऊपर दी गई चाल-सूची हार्ड-कोडेड है और हमेशा समान रहेगी। (यह भी क्यों कि इसे इनपुट के रूप में लेने के बजाय इसे क्लास-लेवल फील्ड के रूप में रखना ठीक है यदि यह आपके उत्तर की बाइट-काउंट में मदद करता है।)
- इनपुट-सूची 0-अनुक्रमित या 1-अनुक्रमित (आप तक) दोनों हो सकती है
- हम सूची के सबसे बड़े सूचकांक को छोड़कर केवल 'चलते' हैं।
- Also: आपको इनपुट-सरणी के अंतिम आइटम के बजाय इस अंतिम आइटम को अलग पूर्णांक इनपुट के रूप में लेने की अनुमति है।
- हमारे द्वारा समाप्त किए जाने वाले x और y निर्देशांक का आउटपुट किसी भी उचित प्रारूप में हो सकता है (पूर्णांक-सरणी में दो आइटम, सीमांकित स्ट्रिंग, दो अलग-अलग लाइनों पर STDOUT पर मुद्रित, आदि)
- आप मान सकते हैं कि इनपुट-लिस्ट को सबसे कम से उच्चतम (या उच्चतम से सबसे कम यदि आप पसंद करते हैं, तो जिस स्थिति में पहला आइटम चाल-सूची का प्रारंभिक आकार है - यदि अलग इनपुट के रूप में नहीं लिया गया है)। और इसमें कोई डुप्लिकेट इंडेक्स भी नहीं होगा।
- यदि इनपुट-सूची का सबसे बड़ा सूचकांक ऊपर की चालों की सूची से बड़ा है (55 चाल ऊपर की सूची में हैं), हम सूची की शुरुआत के आसपास फिर से लपेटते हैं (जितनी बार आवश्यक हो, सबसे बड़े सूचकांक के आधार पर। इनपुट का)।
- आपको
y,xइसके बजाय आउटपुट की अनुमति हैx,y, लेकिन यदि आप करते हैं तो कृपया इसे अपने उत्तर में निर्दिष्ट करें।
उदाहरण:
इनपुट: [0,4,8,10,13,14,27,34,42,43,44,50,53,56,59,60,64]
यहाँ चालें और (0-अनुक्रमित) सूचक एक के ऊपर एक:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64
L, B, H, R, L, L, B, H, R, L, B, H, H, R, R, L, L, L, R, L, B, H, H, H, H, R, R, L, L, L, B, H, H, H, H, H, R, L, R, L, R, L, H, R, L, L, B, H, H, L, R, L, B, H, H, L, B, H, R, L, L, B, H, R, L
इनपुट-सूची के सूचकांकों को हटाते हुए, हमारे पास निम्नलिखित चाल-सूची शेष होगी:
1, 2, 3, 5, 6, 7, 9,11,12,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,35,36,37,38,39,40,41,45,46,47,48,49,51,52,54,55,57,58,61,62,63
B, H, R, L, B, H, L, H, H, L, L, L, R, L, B, H, H, H, H, R, R, L, L, B, H, H, H, H, R, L, R, L, R, L, L, B, H, H, L, L, B, H, L, H, R, B, H, R
अब यदि हम {0, 0}शेष चालों की स्थिति से चलते हैं , तो हमारे पास हर चाल के बाद निम्नलिखित नए निर्देशांक होंगे:
{0,0};B,{0,-1};H,{0,0};R,{1,0};L,{0,0};B,{0,-1};H,{0,0};L,{-1,0};H,{-1,1};H,{-1,2};L,{-2,2};L,{-3,2};L,{-4,2};R,{-3,2};L,{-4,2};B,{-4,1};H,{-4,2};H,{-4,3};H,{-4,3};H,{-4,5};R,{-3,5};R,{-2,5};L,{-3,5};L,{-4,5};B,{-4,4};H,{-4,5};H,{-4,6};H,{-4,7};H,{-4,8};R,{-3,8};L,{-4,8};R,{-3,8};L,{-4,8};R,{-3,8};L,{-4,8};L,{-5,8};B,{-5,7};H,{-5,8};H,{-5,9};L,{-6,9};L,{-7,9};B,{-7,8};H,{-7,9};L,{-8,9};H,{-8,10};R,{-7,10};B,{-7,9};H,{-7,10};R,{-6,10}
तो अंतिम उत्पादन होगा: {-6, 10}
सामान्य नियम:
- यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
कोड-गोल्फ भाषाओं को गैर-कोडगॉल्फिंग भाषाओं के साथ उत्तर पोस्ट करने से हतोत्साहित न करें। 'किसी भी' प्रोग्रामिंग भाषा के लिए यथासंभव संक्षिप्त उत्तर के साथ आने का प्रयास करें। - मानक नियम आपके उत्तर के लिए लागू होते हैं , इसलिए आपको उचित पैरामीटर और रिटर्न-टाइप, पूर्ण कार्यक्रमों के साथ STDIN / STDOUT, फ़ंक्शन / विधि का उपयोग करने की अनुमति है। तुम्हारा कॉल।
- डिफ़ॉल्ट लूपोल्स वर्जित हैं।
- यदि संभव हो, तो कृपया अपने कोड के लिए एक परीक्षण के साथ एक लिंक जोड़ें।
- साथ ही, आपके उत्तर के लिए स्पष्टीकरण जोड़ना अत्यधिक अनुशंसित है।
परीक्षण के मामलों:
0-indexed input: [0,4,8,10,13,14,27,34,42,43,44,50,53,56,59,60,64]
1-indexed input: [1,5,9,11,14,15,28,35,43,44,45,51,54,57,60,61,65]
Output: {-6, 10}
0-indexed input: [55] (Note: There are 55 moves in the unmodified list)
1-indexed input: [56] (Note: There are 55 moves in the unmodified list)
Output: {-6, 11}
0-indexed input: [0,1,4,5,6,9,10,15,16,17,19,20,27,29,30,37,38,39,41,44,45,46,49,51,52]
1-indexed input: [1,2,5,6,7,10,11,16,17,18,20,21,28,30,31,38,39,40,42,45,46,47,50,52,53]
Output: {10, 16}
0-indexed input: [2,3,7,8,11,12,13,14,18,21,22,23,24,25,26,31,32,33,34,35,36,38,40,42,43,47,48,50,53]
1-indexed input: [3,4,8,9,12,13,14,15,19,22,23,24,25,26,27,32,33,34,35,36,37,39,41,43,44,48,49,51,54]
Output: {-18, -7}
0-indexed input: [0]
1-indexed input: [1]
Output: {0, 0}
0-indexed input: [4,6,7,11,12,13,15,17,20,28,31,36,40,51,59,66,73,74,80,89,92,112,113,114,116,120,122,125,129,134,136,140,145,156,161,162,165,169,171,175,176,178,187,191,200]
1-indexed input: [5,7,8,12,13,14,16,18,21,29,32,37,41,52,60,67,74,75,81,90,93,113,114,115,117,121,123,126,130,135,137,141,146,157,162,163,166,170,172,176,177,179,188,192,201]
Output: {-17, 37}
0-indexed input: [25,50,75,100,125,150,175,200,225,250]
1-indexed input: [26,51,76,101,126,151,176,201,226,251]
Output: {-28, 49}