enum engrais {X, Y, Z};
enum besoins {p, c, n};

int composition[engrais, besoins]=[[1, 3, 3], [2, 2, 1], [3, 1, 0]];
int quantite[besoins]=[60, 120, 90];
int prix[engrais]=[14, 8, 6];

var int achat[engrais] in 0..maxint;

minimize
    sum(e in engrais) achat[e]*prix[e]

subject to {
    forall(b in besoins)
      sum(e in engrais) composition[e, b]*achat[e]>=quantite[b];
};