this repo has no description
at develop 516 B view raw
1include "inverse.mzn"; 2 3int: n; 4 5array[1..n] of var 1..n: x; % 数值的序列 6array[1..n-1] of var 1..n-1: u; % 差值的序列 7 8constraint forall(i in 1..n-1)(u[i] = abs(x[i+1] - x[i])); 9 10array[1..n] of var 1..n: y; % 每个数值的位置 11array[1..n-1] of var 1..n-1: v; % 差值的位置 12 13constraint inverse(x,y); 14constraint inverse(u,v); 15 16constraint abs(y[1] - y[n]) = 1 /\ v[n-1] = min(y[1], y[n]); 17 18solve :: int_search(y, first_fail, indomain_min, complete) 19 satisfy; 20 21output ["x = ",show(x),"\n"];