Source: https://miashs-www.u-ga.fr/prevert/Prog/Complexite/annales/examen97.pdf