We could also treat this as searching a maximal/minimal matching in a complete bipartite graph using this paper: https://www.sciencedirect.com/science/article/pii/S0304397511010474