21 lines
1.1 KiB
MiniZinc
21 lines
1.1 KiB
MiniZinc
array [1..16] of int: clues = [5, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 8, 0, 7, 0, 0];
|
|
array [1..4] of int: colsums = [24, 18, 31, 31];
|
|
array [1..2] of int: diagsums = [24, 24];
|
|
array [1..4] of int: rowsums = [22, 26, 31, 25];
|
|
array [1..16] of var 1..9: x :: output_array([1..4, 1..4]);
|
|
constraint int_eq(5, x[1]);
|
|
constraint int_eq(7, x[14]);
|
|
constraint int_eq(8, x[7]);
|
|
constraint int_eq(8, x[12]);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[1], x[2], x[3], x[4]], 22);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[1], x[5], x[9], x[13]], 24);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[1], x[6], x[11], x[16]], 24);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[2], x[6], x[10], x[14]], 18);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[3], x[7], x[11], x[15]], 31);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[4], x[7], x[10], x[13]], 24);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[4], x[8], x[12], x[16]], 31);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[5], x[6], x[7], x[8]], 26);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[9], x[10], x[11], x[12]], 31);
|
|
constraint int_lin_eq([1, 1, 1, 1], [x[13], x[14], x[15], x[16]], 25);
|
|
solve satisfy;
|