53 lines
2.1 KiB
MiniZinc
53 lines
2.1 KiB
MiniZinc
array [1..16] of var int: p :: output_array([1..4, 1..4]);
|
|
array [1..16] of var 1..10: t :: output_array([1..4, 1..4]);
|
|
array [1..16] of var 1..10: x :: output_array([1..4, 1..4]);
|
|
constraint int_eq(2, p[1]);
|
|
constraint int_eq(3, p[2]);
|
|
constraint int_eq(3, p[5]);
|
|
constraint int_eq(4, p[3]);
|
|
constraint int_eq(4, p[6]);
|
|
constraint int_eq(4, p[9]);
|
|
constraint int_eq(5, p[4]);
|
|
constraint int_eq(5, p[7]);
|
|
constraint int_eq(5, p[10]);
|
|
constraint int_eq(5, p[13]);
|
|
constraint int_eq(6, p[8]);
|
|
constraint int_eq(6, p[11]);
|
|
constraint int_eq(6, p[14]);
|
|
constraint int_eq(7, p[12]);
|
|
constraint int_eq(7, p[15]);
|
|
constraint int_eq(8, p[16]);
|
|
constraint int_eq(t[1], x[1]);
|
|
constraint int_eq(t[2], x[5]);
|
|
constraint int_eq(t[3], x[9]);
|
|
constraint int_eq(t[4], x[13]);
|
|
constraint int_eq(t[5], x[2]);
|
|
constraint int_eq(t[6], x[6]);
|
|
constraint int_eq(t[7], x[10]);
|
|
constraint int_eq(t[8], x[14]);
|
|
constraint int_eq(t[9], x[3]);
|
|
constraint int_eq(t[10], x[7]);
|
|
constraint int_eq(t[11], x[11]);
|
|
constraint int_eq(t[12], x[15]);
|
|
constraint int_eq(t[13], x[4]);
|
|
constraint int_eq(t[14], x[8]);
|
|
constraint int_eq(t[15], x[12]);
|
|
constraint int_eq(t[16], x[16]);
|
|
constraint int_lin_eq([1, -1, -1], [p[1], t[1], x[1]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[2], t[2], x[2]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[3], t[3], x[3]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[4], t[4], x[4]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[5], t[5], x[5]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[6], t[6], x[6]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[7], t[7], x[7]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[8], t[8], x[8]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[9], t[9], x[9]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[10], t[10], x[10]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[11], t[11], x[11]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[12], t[12], x[12]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[13], t[13], x[13]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[14], t[14], x[14]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[15], t[15], x[15]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [p[16], t[16], x[16]], 0);
|
|
solve satisfy;
|