आपको एक प्रोग्राम या फ़ंक्शन लिखना चाहिए जो कि एक-अंक पॉजिटिव पूर्णांक और ट्रैक की लंबाई को इनपुट आउटपुट के रूप में शुरू करने का आदेश देता है या संख्याओं के अंतिम क्रम को वापस करता है।
इनपुट [5,1,2,6,7] and 14
निम्नलिखित दौड़ को परिभाषित करता है:
--------------
76215 ->
--------------
दौड़ के नियम
- ट्रैक चारों ओर घूमता है और अंक कई गोद में जा सकते हैं।
- चरणों का क्रम चक्रीय है और प्रारंभिक स्थिति पर आधारित है। हमारे उदाहरण में
5 1 2 6 7 5 1 2 ...
। - एक ही स्थिति में एक से अधिक अंक नहीं हो सकते।
प्रत्येक अंक में
digit_value
प्रति चरण सेल की गति होती है । एक अंक या अंकों के एक निरंतर ब्लॉक को ओवरटेक करना एक अतिरिक्त कदम है। यदि अंक के लिए आवश्यक गति नहीं है, तो यह अंक (ओं) के ब्लॉक से पहले बंद हो जाएगा। उदाहरण:[41 ] => [ 1 4 ] 4 overtakes 1 [2 1 ] => [ 21 ] 2 can only move 1 as it can't move 3 to overtake 1 [4 12 ] => [ 412 ] 4 can only move 1 as it can't move 5 to overtake 12 [ 3 ] => [ 3 ] 3 starting a new lap
हर अंक को
digit_value
खत्म होने से पहले ही चूक जाना पड़ता है । ट्रैक की आखिरी सेल बचे होने पर एक लैप पूरा हो जाता है। एक समाप्त अंक ट्रैक से हटा दिया जाता है।- ध्यान दें कि एक अंक एक कदम के माध्यम से कई बार अपनी प्रारंभिक स्थिति तक पहुंच सकता है और कई गोद को पूरा कर सकता है।
इनपुट
- सूची की
1..9
लंबाई, ट्रैक की लंबाई से अधिक, कम से कम एक तत्व और एकल पॉजिटिव पूर्णांक के साथ अलग-अंकों वाले सकारात्मक पूर्णांक ( ) की एक सूची।
उत्पादन
- क्रम में अंकों की एक सूची वे किसी भी प्रारूप में समाप्त हो गए।
उदाहरण
इनपुट के लिए एक दृश्य चरण-दर-चरण उदाहरण starting_order = [5,9,2] and length = 6
295 | Start position
29 5| digit 5 moves
2 9 5| digit 9 moves, finishing lap #1
29 5| digit 2 moves
529 | digit 5 moves, finishing lap #1
52 9| digit 9 moves, finishing lap #2
5 29| digit 2 moves
529| digit 5 moves
9 52 | digit 9 moves, finishing laps #3 and #4
29 5 | digit 2 moves, finishing lap #1
29 5| digit 5 moves
2 9 5| digit 9 moves, finishing lap #5
29 5| digit 2 moves
529 | digit 5 moves, finishing lap #2
52 9| digit 9 moves, finishing lap #6
5 29| digit 2 moves
529| digit 5 moves
9 52 | digit 9 moves, finishing laps #7 and #8
9 5 | digit 2 moves, finishing lap #2 --> remove 2 from the track
59 | digit 5 moves, finishing lap #3
5 | digit 9 moves, finishing lap #9 --> remove 9 from the track
5| digit 5 moves
5 | digit 5 moves, finishing lap #4
| digit 5 moves, finishing lap #5 --> remove 5 from the track
------
Finish order: 2 9 5
प्रारूप में उदाहरण Input => Output
[3], 2 => [3]
[9, 5], 3 => [9, 5]
[5, 9, 2], 6 => [2, 9, 5]
[5, 9, 2], 10 => [5, 9, 2]
[5, 7, 8, 1, 2], 10 => [1, 5, 7, 8, 2]
[5, 1, 6, 8, 3, 2], 17 => [1, 6, 8, 2, 3, 5]
[1, 2, 3, 7, 8, 9], 15 => [1, 7, 8, 9, 2, 3]
[9, 8, 7, 3, 2, 1], 15 => [8, 7, 9, 1, 2, 3]
[1, 2, 3, 4, 5, 6, 7, 8, 9], 20 => [1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1], 20 => [8, 7, 5, 9, 6, 1, 2, 4, 3]
यह कोड-गोल्फ है इसलिए सबसे छोटी प्रविष्टि जीतती है।