Explique este algoritmo O (n log n) para el problema de lanzamiento de gato / huevo

Este problema (¿Cuántos gatos necesita tirar de un edificio para determinar el piso máximo donde sobrevivirá ese gato? Bastante cruel, en realidad), tiene una respuesta aceptada con complejidad O (n ^ 3). El problema es equivalente a estoGoogle Code Jam, que debería poder resolverse para N = 2000000000.

Parece que la solución O (n ^ 3) no es lo suficientemente buena como para resolverla. De miraren la página de soluciones, la solución de jdmetz (# 2) parece ser O (n log n). No entiendo bien el algoritmo. ¿Alguien puede explicarlo?

Editar

Respuestas a la pregunta(2)

Su respuesta a la pregunta