golomb_5.fzn
4.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
array [1..2] of int: X_INTRODUCED_5_ = [1,-1];
array [1..3] of int: X_INTRODUCED_17_ = [2,-1,-1];
array [1..4] of int: X_INTRODUCED_18_ = [1,-1,-1,1];
array [1..2] of int: X_INTRODUCED_19_ = [-1,1];
var 1..25: X_INTRODUCED_1_;
var 0..25: X_INTRODUCED_2_;
var 0..25: X_INTRODUCED_3_;
var 0..25: X_INTRODUCED_4_;
var 0..25: X_INTRODUCED_10_ ::var_is_introduced :: is_defined_var;
var 0..25: X_INTRODUCED_11_ ::var_is_introduced :: is_defined_var;
var 0..25: X_INTRODUCED_12_ ::var_is_introduced :: is_defined_var;
var 0..25: X_INTRODUCED_13_ ::var_is_introduced :: is_defined_var;
var 0..25: X_INTRODUCED_14_ ::var_is_introduced :: is_defined_var;
var 0..25: X_INTRODUCED_15_ ::var_is_introduced :: is_defined_var;
array [1..5] of var int: mark:: output_array([1..5]) = [0,X_INTRODUCED_1_,X_INTRODUCED_2_,X_INTRODUCED_3_,X_INTRODUCED_4_];
array [1..10] of var int: differences = [X_INTRODUCED_1_,X_INTRODUCED_2_,X_INTRODUCED_3_,X_INTRODUCED_4_,X_INTRODUCED_10_,X_INTRODUCED_11_,X_INTRODUCED_12_,X_INTRODUCED_13_,X_INTRODUCED_14_,X_INTRODUCED_15_];
constraint int_lin_le(X_INTRODUCED_5_,[X_INTRODUCED_1_,X_INTRODUCED_2_],-1);
constraint int_lin_le(X_INTRODUCED_5_,[X_INTRODUCED_2_,X_INTRODUCED_3_],-1);
constraint int_lin_le(X_INTRODUCED_5_,[X_INTRODUCED_3_,X_INTRODUCED_4_],-1);
constraint int_lin_ne(X_INTRODUCED_5_,[X_INTRODUCED_1_,X_INTRODUCED_2_],0);
constraint int_lin_ne(X_INTRODUCED_5_,[X_INTRODUCED_1_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_5_,[X_INTRODUCED_1_,X_INTRODUCED_4_],0);
constraint int_lin_ne([2,-1],[X_INTRODUCED_1_,X_INTRODUCED_2_],0);
constraint int_lin_ne([2,-1],[X_INTRODUCED_1_,X_INTRODUCED_3_],0);
constraint int_lin_ne([2,-1],[X_INTRODUCED_1_,X_INTRODUCED_4_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_1_,X_INTRODUCED_3_,X_INTRODUCED_2_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_1_,X_INTRODUCED_4_,X_INTRODUCED_2_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_1_,X_INTRODUCED_4_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_5_,[X_INTRODUCED_2_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_5_,[X_INTRODUCED_2_,X_INTRODUCED_4_],0);
constraint int_lin_ne([1],[X_INTRODUCED_1_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_2_,X_INTRODUCED_3_,X_INTRODUCED_1_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_2_,X_INTRODUCED_4_,X_INTRODUCED_1_],0);
constraint int_lin_ne([2,-1],[X_INTRODUCED_2_,X_INTRODUCED_3_],0);
constraint int_lin_ne([2,-1],[X_INTRODUCED_2_,X_INTRODUCED_4_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_2_,X_INTRODUCED_4_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_5_,[X_INTRODUCED_3_,X_INTRODUCED_4_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_3_,X_INTRODUCED_2_,X_INTRODUCED_1_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_3_,X_INTRODUCED_4_,X_INTRODUCED_1_],0);
constraint int_lin_ne([1],[X_INTRODUCED_2_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_3_,X_INTRODUCED_4_,X_INTRODUCED_2_],0);
constraint int_lin_ne([2,-1],[X_INTRODUCED_3_,X_INTRODUCED_4_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_4_,X_INTRODUCED_2_,X_INTRODUCED_1_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_4_,X_INTRODUCED_3_,X_INTRODUCED_1_],0);
constraint int_lin_ne([1,-1,1],[X_INTRODUCED_4_,X_INTRODUCED_3_,X_INTRODUCED_2_],0);
constraint int_lin_ne([1],[X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_17_,[X_INTRODUCED_2_,X_INTRODUCED_1_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_17_,[X_INTRODUCED_2_,X_INTRODUCED_1_,X_INTRODUCED_4_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_2_,X_INTRODUCED_1_,X_INTRODUCED_4_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_19_,[X_INTRODUCED_1_,X_INTRODUCED_2_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_3_,X_INTRODUCED_1_,X_INTRODUCED_4_,X_INTRODUCED_2_],0);
constraint int_lin_ne(X_INTRODUCED_17_,[X_INTRODUCED_3_,X_INTRODUCED_1_,X_INTRODUCED_4_],0);
constraint int_lin_ne(X_INTRODUCED_18_,[X_INTRODUCED_4_,X_INTRODUCED_1_,X_INTRODUCED_3_,X_INTRODUCED_2_],0);
constraint int_lin_ne(X_INTRODUCED_19_,[X_INTRODUCED_1_,X_INTRODUCED_3_],0);
constraint int_lin_ne(X_INTRODUCED_17_,[X_INTRODUCED_3_,X_INTRODUCED_2_,X_INTRODUCED_4_],0);
constraint int_lin_ne(X_INTRODUCED_19_,[X_INTRODUCED_2_,X_INTRODUCED_3_],0);
constraint int_lin_le([1,-1,1],[X_INTRODUCED_1_,X_INTRODUCED_4_,X_INTRODUCED_3_],-1);
constraint int_lin_eq([1,-1,-1],[X_INTRODUCED_2_,X_INTRODUCED_1_,X_INTRODUCED_10_],0):: defines_var(X_INTRODUCED_10_);
constraint int_lin_eq([1,-1,-1],[X_INTRODUCED_3_,X_INTRODUCED_1_,X_INTRODUCED_11_],0):: defines_var(X_INTRODUCED_11_);
constraint int_lin_eq([1,-1,-1],[X_INTRODUCED_4_,X_INTRODUCED_1_,X_INTRODUCED_12_],0):: defines_var(X_INTRODUCED_12_);
constraint int_lin_eq([1,-1,-1],[X_INTRODUCED_3_,X_INTRODUCED_2_,X_INTRODUCED_13_],0):: defines_var(X_INTRODUCED_13_);
constraint int_lin_eq([1,-1,-1],[X_INTRODUCED_4_,X_INTRODUCED_2_,X_INTRODUCED_14_],0):: defines_var(X_INTRODUCED_14_);
constraint int_lin_eq([1,-1,-1],[X_INTRODUCED_4_,X_INTRODUCED_3_,X_INTRODUCED_15_],0):: defines_var(X_INTRODUCED_15_);
solve :: int_search(mark,input_order,indomain,complete) minimize X_INTRODUCED_4_;