this repo has no description
1include "alldifferent.mzn";
2
3% Número de marcas en la regla.
4int: n;
5
6% Longitud máxima de la regla.
7int: m;
8
9array[1..n] of var 0..m: mark;
10array[1..n,1..n] of var 0..m: diffs;
11
12constraint mark[1] = 0;
13constraint forall ( i in 1..n-1 ) ( mark[i] < mark[i+1] );
14constraint forall (i,j in 1..n where i > j) % (diff)
15 (diffs[i,j] = mark[i] - mark[j]); % (diff)
16constraint alldifferent([ diffs[i,j] | i,j in 1..n where i > j]);
17
18% Ruptura de la simetría.
19constraint diffs[2,1] < diffs[n,n-1];
20
21solve satisfy;
22
23output ["Marcas = ",show(mark),"\n"];