"""
Consider the following scenario: there are N mice and N holes placed at integer points along a line. Given this, find a method that maps mice to holes such that the largest number of steps any mouse takes is minimized.

Each move consists of moving one mouse one unit to the left or right, and only one mouse can fit inside each hole.

For example, suppose the mice are positioned at [1, 4, 9, 15], and the holes are located at [10, -5, 0, 16]. In this case, the best pairing would require us to send the mouse at 1 to the hole at -5, so our function should return 6.
"""

from typing import List


def maxMoves(mice: List[int], holes: List[int]) -> int:
	if len(mice) != len(holes):
		return -1

	mice.sort()
	holes.sort()

	m = 0

	for mouse, hole in zip(mice, holes):
		m = max(m, mouse - hole)

	return m


assert maxMoves([1, 4, 9, 15], [10, -5, 0, 16]) == 6
print("passed")
