Discrete Math, difficulty level 5. This problem is based on the Stable Marriage Algorithm, which requires students to make the best match possible between a set of girls and a set of boys desiring to date each other.