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, thenarr[i] = perm[i / 2]. - If
i % 2 == 1, thenarr[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
Input
n = 2Output
1Starting from [0, 1], after the first operation the permutation is already back to [0, 1], so it takes 1 operation.
Example 2
Input
n = 4Output
2Starting 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.