Resuelve los puzles de Spotify

Además de ser una revolución en la industria musical, Spotify es también una empresa en pleno proceso de expansión, tanto geográficamente como en número de empleados. Así lo demuestra la gran cantidad de ofertas de empleo publicadas en su sitio web. Como complemento a estas vacantes, la empresa sueca propone tres retos técnicos para programadores ordenados por nivel de dificultad, que en caso de ser resueltos pueden suponer un empujón para la contratación en la compañía.

Esta tarde he probado con el primero de ellos y, a pesar de que surgen más complicaciones de lo que parece en un principio, lo he resuelto sin demasiados problemas (supongo que en los dos siguientes la cosa se complica más). No es porque tenga pensado solicitar un trabajo en Spotify, pero este tipo de retos técnicos siempre son interesantes y entretenidos. Si estás leyendo esto y sabes programar, te animo a que resuelvas los puzles de Spotify. He dejado mi solución en Github, pero no la mires antes de solucionarlo o perderá la gracia.

Editado: Segundo reto (ticket lottery) resulto. Solución en Github.

Editado (18/01/2013): Hoy me disponía a resolver el tercer reto y al entrar en el sitio web vi que ya no existe. Spotify ha renovado sus puzles, aquí están los tres nuevos.