n সংখ্যক বল আছে যেগুলো ১, ২, ৩, ..., n ক্রমে সাজানো। এখন বলগুলো রিভার্স করা হয়: n, n-1, ..., ১। আবার রিভার্স করা হয় কিন্তু এইবার পজিশন ১ থেকে n পর্যন্ত (অর্থাৎ n, ১, ২, ..., n-1)। এই রিভার্সাল প্রক্রিয়া n বার চলতে থাকে এবং প্রতিবার স্টার্টিং পজিশন ১ ধাপ ডানে সরায়। প্রাথমিকভাবে index পজিশনে থাকা বল n বার রিভার্সালের পর কোন পজিশনে থাকবে তা বের করতে হবে।
উদাহরণ
ইনপুট: balls = 5, index = 2
আউটপুট: 4
প্রক্রিয়া:
5,4,3,2,1 5,1,2,3,4 5,1,4,3,2 5,1,4,2,3পজিশন ২-র বল চূড়ান্তে পজিশন ৪-এ।
সমাধান পদ্ধতি
- যদি
index < balls // 2হয়, তবে2 * index + 1রিটার্ন করুন। - অন্যথায়
2 * (balls - index - 1)রিটার্ন করুন।
পাইথন ইমপ্লিমেন্টেশন
def solve(balls, index):
if index < balls // 2:
return 2 * index + 1
else:
return 2 * (balls - index - 1)
# টেস্ট
print(solve(5, 2)) # আউটপুট: 4
ইনপুট
5, 2
আউটপুট
4