Source: http://perso.ens-lyon.fr/frederic.vivien/Enseignement/Algo-2001-2002/Corrige-TD11.pdf