Minimum Number of Operations to Reinitialize a Permutation

You are given an even integer n. You initially have a permutation perm of size n where perm[i] == i (0-indexed).

In one operation, you will create a new array arr, and for each i:

  • If i % 2 == 0, then arr[i] = perm[i / 2].
  • If i % 2 == 1, then arr[i] = perm[n / 2 + (i - 1) / 2].

You will then assign arr to perm.

Return the minimum non-zero number of operations you need to perform on perm to return the permutation to its initial value.

Example 1
Inputn = 2
Output1
Starting from [0, 1], after the first operation the permutation is already back to [0, 1], so it takes 1 operation.
Example 2
Inputn = 4
Output2
Starting from [0, 1, 2, 3], the first operation gives [0, 2, 1, 3] and the second returns it to [0, 1, 2, 3].

Constraints

  • 2 <= n <= 1000
  • n is even.

Asked at 1 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate