Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. include "globals.mzn";
  2.  
  3. int: n;
  4. array[1..n, 1..n] of var 1..n*n: square;
  5. var 1..n*n*n: sum;
  6.  
  7. constraint
  8. alldifferent([square[j, i] | j, i in 1..n])
  9.  
  10. /\
  11. forall (i in 1..n)
  12. (sum(j in 1..n)(square[i, j]) = sum)
  13.  
  14. /\
  15. forall (i in 1..n)
  16. (sum(j in 1..n)(square[j, i]) = sum)
  17.  
  18. /\
  19. sum(i in 1..n)(square[i, i]) = sum
  20.  
  21. /\
  22. sum(i in 1..n)(square[i, n-i+1]) = sum
  23. ;
  24.  
  25. solve satisfy;
  26.  
  27. output [
  28. "\ns: ", show(sum)
  29. ] ++
  30. [
  31. if j = 1 then "\n" else " " endif ++
  32. show(square[i, j])
  33. | i, j in 1..n
  34. ] ++ ["\n"];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement