Source: https://perso.liris.cnrs.fr/nicolas.pronost/UCBL/LIFAP3/exam/LIFAP3_2017_aut_CCfinal_corrige.pdf