Domanda di colloquio di Affirm

Difficult algorithmic question. Could not choose programming language.