import static choco.Choco.*; import choco.cp.model.CPModel; import choco.cp.solver.CPSolver; import choco.cp.solver.search.integer.varselector.StaticVarOrder; import choco.kernel.model.Model; import choco.kernel.solver.Solver; import choco.kernel.model.variables.integer.IntegerVariable; import choco.kernel.solver.variables.integer.IntDomainVar; public class SteinerTriple03 { public static void main(String[] args) { CPModel model = new CPModel(); int m = Integer.parseInt(args[0]); int n = m*(m-1)/6; IntegerVariable[][] block = makeIntVarArray("block",n,m,0,1); // block[i][j] = 1 <-> j is in ith block IntegerVariable[][] pair = new IntegerVariable[m][m]; // pair[i][j] = k <-> (i,j) is in block[k] for (int i=0;i block[k][i] = 1 && block[k][j] = 1 // CPSolver sol = new CPSolver(); sol.read(model); IntDomainVar[] decision = new IntDomainVar[m*(m-1)/2]; for (int i=0,k=0;i