मान लीजिए, गेंदों की संख्या n है। गेंदों को 1,2,3,4,...,n फैशन में क्रमबद्ध किया जाता है। अब गेंदों को क्रम में उलट दिया जाता है, या एक तरह से n, n-1, n-2, ......, 2, 1 क्रम में रखा जाता है। गेंदों को फिर से क्रम में उलट दिया जाता है, इस बार उन्हें स्थिति 1 से उलट दिया जाता है। से n, या अब क्रम n, 1, 2,....., n-1 हो जाता है। यह उलटने की प्रक्रिया n बार दोहराई जाती है और हर बार शुरुआती स्थिति को 1 स्थान दाईं ओर ले जाया जाता है। अब हमें उलटने के बाद शुरू में 'इंडेक्स' की स्थिति में गेंद की स्थिति का पता लगाना होगा।
इसलिए, यदि इनपुट बॉल्स =5, इंडेक्स =2 की तरह है, तो आउटपुट 4 होगा। शुरुआत में बॉल्स हैं:1, 2, 3, 4, 5
फिर,
5,4,3,2,1 5,1,2,3,4 5,1,4,3,2 5,1,4,2,3
स्थिति 2 में गेंद वर्तमान में 4 स्थान पर है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- अगर इंडेक्स <फ्लोर वैल्यू (गेंद / 2), तो
- रिटर्न 2 * इंडेक्स + 1
- अन्यथा,
- रिटर्न 2 *(गेंद - सूचकांक -1)
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(balls, index): if index < balls // 2: return 2 * index + 1 else: return 2 * (balls - index - 1) print(solve(5, 2))
इनपुट
5, 2
आउटपुट
4