Source: https://www.iro.umontreal.ca/~mignotte/IFT1215/ExosSupplementaires/ADuvallet.pdf