El archivo fuente para resolver el problema propuesto.