Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- include "globals.mzn";
- int: n;
- array[1..n, 1..n] of var 1..n*n: square;
- var 1..n*n*n: sum;
- constraint
- alldifferent([square[j, i] | j, i in 1..n])
- /\
- forall (i in 1..n)
- (sum(j in 1..n)(square[i, j]) = sum)
- /\
- forall (i in 1..n)
- (sum(j in 1..n)(square[j, i]) = sum)
- /\
- sum(i in 1..n)(square[i, i]) = sum
- /\
- sum(i in 1..n)(square[i, n-i+1]) = sum
- ;
- solve satisfy;
- output [
- "\ns: ", show(sum)
- ] ++
- [
- if j = 1 then "\n" else " " endif ++
- show(square[i, j])
- | i, j in 1..n
- ] ++ ["\n"];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement