Source: http://www.normalesup.org/~manceau/fr/files/BCPST_AlgoEtProjets.pdf