Pregunta de entrevista de Affirm

Difficult algorithmic question. Could not choose programming language.