Files
ortools-clone/examples/flatzinc/enigma_1574.fzn

52 lines
3.6 KiB
MiniZinc

predicate fzn_all_different_int(array [int] of var int: x);
predicate count(array [int] of var int: x, var int: y, var int: c);
predicate fixed_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, int: b);
predicate global_cardinality(array [int] of var int: x, array [int] of int: cover, array [int] of var int: counts);
predicate maximum_int(var int: m, array [int] of var int: x);
predicate minimum_int(var int: m, array [int] of var int: x);
predicate sliding_sum(int: low, int: up, int: seq, array [int] of var int: vs);
predicate sort(array [int] of var int: x, array [int] of var int: y);
predicate table_bool(array [int] of var bool: x, array [int, int] of bool: t);
predicate table_int(array [int] of var int: x, array [int, int] of int: t);
predicate var_fzn_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, var int: b);
var 1..12: INT____00004 :: is_defined_var :: var_is_introduced;
var 1..31: INT____00005 :: is_defined_var :: var_is_introduced;
var 0..99: INT____00006 :: is_defined_var :: var_is_introduced;
var 1..31: day :: output_var = INT____00005;
var 1..999999: day_month_year;
var 1..999999: INT____00010 :: var_is_introduced = day_month_year;
array [1..6] of var 0..9: day_month_year_a;
var 1..12: month :: output_var = INT____00004;
var 1..999999: month_day_year;
var 1..999999: INT____00009 :: var_is_introduced = month_day_year;
array [1..6] of var 0..9: month_day_year_a;
var int: y1;
var int: y2;
var 0..99: year :: output_var = INT____00006;
constraint int_le(1, y1);
constraint int_le(1, y2);
constraint int_le(day_month_year_a[1], 9);
constraint int_le(day_month_year_a[2], 9);
constraint int_le(day_month_year_a[3], 9);
constraint int_le(day_month_year_a[4], 9);
constraint int_le(day_month_year_a[5], 9);
constraint int_le(day_month_year_a[6], 9);
constraint int_le(month_day_year_a[1], 9);
constraint int_le(month_day_year_a[2], 9);
constraint int_le(month_day_year_a[3], 9);
constraint int_le(month_day_year_a[4], 9);
constraint int_le(month_day_year_a[5], 9);
constraint int_le(month_day_year_a[6], 9);
constraint int_lin_eq([-1, 10, 1], [INT____00004, day_month_year_a[3], day_month_year_a[4]], 0);
constraint int_lin_eq([-1, 10, 1], [INT____00004, month_day_year_a[1], month_day_year_a[2]], 0) :: defines_var(INT____00004);
constraint int_lin_eq([-1, 10, 1], [INT____00005, day_month_year_a[1], day_month_year_a[2]], 0);
constraint int_lin_eq([-1, 10, 1], [INT____00005, month_day_year_a[3], month_day_year_a[4]], 0) :: defines_var(INT____00005);
constraint int_lin_eq([-1, 10, 1], [INT____00006, day_month_year_a[5], day_month_year_a[6]], 0);
constraint int_lin_eq([-1, 10, 1], [INT____00006, month_day_year_a[5], month_day_year_a[6]], 0) :: defines_var(INT____00006);
constraint int_lin_eq([-1, 100000, 10000, 1000, 100, 10, 1], [day_month_year, day_month_year_a[1], day_month_year_a[2], day_month_year_a[3], day_month_year_a[4], day_month_year_a[5], day_month_year_a[6]], 0);
constraint int_lin_eq([-1, 100000, 10000, 1000, 100, 10, 1], [month_day_year, month_day_year_a[1], month_day_year_a[2], month_day_year_a[3], month_day_year_a[4], month_day_year_a[5], month_day_year_a[6]], 0);
constraint int_ne(INT____00004, INT____00005);
constraint int_times(y1, y1, INT____00009);
constraint int_times(y2, y2, INT____00010);
solve :: int_search([day_month_year_a[1], day_month_year_a[2], day_month_year_a[3], day_month_year_a[4], day_month_year_a[5], day_month_year_a[6], month_day_year_a[1], month_day_year_a[2], month_day_year_a[3], month_day_year_a[4], month_day_year_a[5], month_day_year_a[6]], first_fail, indomain_max, complete) satisfy;