this repo has no description
1include "inverse.mzn";
2
3int: n;
4
5% Secuencia de números.
6array[1..n] of var 1..n: x;
7
8% Secuencia de diferencias.
9array[1..n-1] of var 1..n-1: u;
10
11constraint forall(i in 1..n-1)(u[i] = abs(x[i+1] - x[i]));
12
13% Posición de cada número.
14array[1..n] of var 1..n: y;
15
16% Posición de la diferencia i.
17array[1..n-1] of var 1..n-1: v;
18
19constraint inverse(x,y);
20constraint inverse(u,v);
21
22constraint abs(y[1] - y[n]) = 1 /\ v[n-1] = min(y[1], y[n]);
23
24solve :: int_search(y, first_fail, indomain_min, complete)
25 satisfy;
26
27output ["x = ",show(x),"\n"];