placement(Poids,Places) :-
 length(Poids,N),
 length(Places,N),
 fd_domain(Places,0,20),
 fd_all_different([10|Places]),
 gauche(Poids,Places,M),
 droite(Poids,Places,M),
 fd_labeling(Places,[]).

gauche([],[],0).
gauche([_|Poids],[Place|Places],M) :-
        Place #> 10, gauche(Poids,Places,M).
gauche([Poid|Poids],[Place|Places],M) :-
      Place #< 10,
      M #= MM + Poid*(10-Place),
      gauche(Poids,Places,MM).
droite([],[],0).
droite([_|Poids],[Place|Places],M) :-
       Place #< 10, droite(Poids,Places,M).
droite([Poid|Poids],[Place|Places],M) :-
    Place #> 10,
    M #= MM + Poid*(Place-10),
    droite(Poids,Places,MM).
