% % Filename: latin.mzn % Usage: % > minizinc -a --soln-sep "" --search-complete-msg "" -D"n=4;" latin.mzn | awk 'NF {print $0 | "sort"}' > temp.txt % > awk -f latin.awk temp.txt >sol4.txt % > cat latin.awk /* { nn=split($0,a); n=sqrt(nn); print NR; for(i=0; i<n; ++i) { for(j=0; j<n; ++j) printf("%-2d", a[i*n+j+1]); printf("\n"); } } */ % % see also http://www.minizinc.org % include "globals.mzn"; int: n; array[1..n, 1..n] of var 1..n: x; constraint forall([alldifferent([x[i,j] | j in 1..n]) | i in 1..n]); constraint forall([alldifferent([x[i,j] | i in 1..n]) | j in 1..n]); constraint forall([x[1,i] == i | i in 1..n]); constraint forall([x[i,1] == i | i in 1..n]); solve satisfy; output [show(x[i,j]) ++ " "| i in 1..n, j in 1..n];