Source: https://webusers.imj-prg.fr/uploads/peiyi.cui/2M270/2m270-td2-corrige.pdf