Source: http://www.lix.polytechnique.fr/~bournez/ENSEIGNEMENTS/uploads/Main/Sujet1-correction.pdf