this repo has no description
at develop 640 B view raw
1include "alldifferent.mzn"; 2 3int: n; 4 5% Posición de cada número. 6array[1..n] of var 1..n: y; 7 8% Posición de la diferencia i. 9array[1..n-1] of var 1..n-1: v; 10 11constraint alldifferent(y); 12 13constraint alldifferent(v); 14 15constraint forall(i,j in 1..n where i < j)( 16 (y[i] - y[j] = 1 -> v[j-i] = y[j]) /\ 17 (y[j] - y[i] = 1 -> v[j-i] = y[i]) 18 ); 19 20constraint abs(y[1] - y[n]) = 1 /\ v[n-1] = min(y[1], y[n]); 21 22solve :: int_search(y, first_fail, indomain_min, complete) 23 satisfy; 24 25output [ "x = [",] ++ 26 [ show(i) ++ if j == n then "]\n;" else ", " endif 27 | j in 1..n, i in 1..n where j == fix(y[i]) ];