Program to find out the position of a ball after n reversals in Python


Suppose, there are n number of balls. The balls are ordered in a fashion 1,2,3,4,...,n. Now the balls are reversed in order, or ordered in a way n, n-1, n-2, ......, 2, 1. The balls are again reversed in order, this time they are reversed from position 1 to n, or now the order becomes n, 1, 2,....., n-1. This reversing process is repeated n times and each time the starting position is moved 1 place to the right. We now have to find out the position of a ball initially in position 'index' after the reversals.

So, if the input is like balls = 5, index = 2, then the output will be 4 The balls initially are: 1, 2, 3, 4, 5

Then,

5,4,3,2,1
5,1,2,3,4
5,1,4,3,2
5,1,4,2,3

The ball in position 2 is currently at position 4.

To solve this, we will follow these steps −

  • if index < floor value of (balls / 2), then
    • return 2 * index + 1
  • otherwise,
    • return 2 *(balls - index - 1)

Example

Let us see the following implementation to get better understanding −

def solve(balls, index):
   if index < balls // 2:
      return 2 * index + 1
   else:
      return 2 * (balls - index - 1)

print(solve(5, 2))

Input

5, 2

Output

4

Updated on: 23-Oct-2021

151 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements