int: n; set of int: ROW = 1..n; set of int: COL = 1..n; array [COL] of var ROW: q; constraint all_different(q); constraint all_different([q[i] + i | i in COL]); constraint all_different([q[i] - i | i in COL]);