Bug fix for onehot encoding
[Benchmarks_CSolver.git] / nqueens / nqueens.cc
index 657f005e1b9ce3e07ef5b72b620db0f568ba9755..18d7c6a647bafc95b29e4da60688ec782982a1ac 100644 (file)
@@ -312,6 +312,12 @@ void atmostOneConstraint(CSolver *solver, vector<BooleanEdge> &constraints){
        }
 }
 
+void mustHaveValueConstraint(CSolver* solver, vector<Element*> &elems){
+       for(int i=0; i<elems.size(); i++){
+               solver->mustHaveValue(elems[i]);
+       }
+}
+
 void differentInEachRow(CSolver* solver, int N, vector<Element*> &elems){
        Predicate *eq = solver->createPredicateOperator(SATC_EQUALS);
        for(int i=0; i<N-1; i++){
@@ -388,7 +394,7 @@ void csolverNQueens(int N){
        for(int i=0; i<N; i++){
                elems.push_back(solver->getElementVar(domainSet));
        }
-       
+       mustHaveValueConstraint(solver, elems);
        differentInEachRow(solver, N, elems);
        diagonallyDifferentConstraintBothDir(solver, N, elems);
 //     solver->printConstraints();