Finding approximate competitive equilibria: Efficient and fair course allocation
Introduction to Algorithms