Source: https://profinfoclub.files.wordpress.com/2017/04/projet-algo.pdf