agrego pseudo codigo, con algunos comentarios