CpModel model = new CpModel();
CpSolver solver;
IntVar x = model.NewIntVar(0, 10, "x");
IntVar y = model.NewIntVar(0, 10, "y");
IntVar z = model.NewIntVar(0, 10, "z");
IntVar aux1 = model.NewIntVar(0, 20, "aux1");
IntVar aux2 = model.NewIntVar(0, 200, "aux2");
List<IntVar> vars = new List<IntVar>() { x, y,z, aux1,aux2 };
//CONSTRAINT: (x + y) * z > 15
model.Add(x + y == aux1);
model.AddProdEquality(aux2, new List<IntVar>() { aux1, z });
model.Add(aux2 > 15);
solver = new CpSolver();
CpSolverStatus status = solver.Solve(model);
if (status == CpSolverStatus.Feasible ^ status == CpSolverStatus.Optimal)
{
foreach (var v in vars)
{
Console.WriteLine(String.Format(" {0} = {1}", v.ShortString(), solver.Value(v)));
}
}
else
{
Console.WriteLine("no solution");
}