Source: https://www.iro.umontreal.ca/~salvail/securite/devoirs2014/exemple-2014reponses.pdf