💻 Language: Python 3
📅 Updated: 10am 12thJuly 2025

Answer for Maximum Score

Infosys LPS Code python 3

Minimum Swaps to Sort a Permutation Code

def get_cycles(arr):
n = len(arr)
visited = [False] * n
cycles = []
for i in range(n):
if not visited[i]:
length = 0
j = i
while not visited[j]:
visited[j] = True
j = arr[j]
length += 1
cycles.append(length)
return cycles
def find_best_swap(arr):
n = len(arr)
arr = [x – 1 for x in arr] # 1-based to 0-based
original_cycles = get_cycles(arr)
original_max = max(original_cycles)
min_cycle = original_max
max_cycle = original_max
for i in range(n):
for j in range(i + 1, n):
arr[i], arr[j] = arr[j], arr[i]
cycles = get_cycles(arr)
max_len = max(cycles)
min_cycle = min(min_cycle, max_len)
max_cycle = max(max_cycle, max_len)
arr[i], arr[j] = arr[j], arr[i] # swap back
return min_cycle, max_cycle