enigma_birthday_magic.fzn 1.9 KB
Newer Older
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
var 0..100: INT____00011 :: is_defined_var :: var_is_introduced;
var 1900..2000: INT____00012 :: is_defined_var :: var_is_introduced;
var 0..100: age :: output_var = INT____00011;
array [1..16] of var 0..100: x :: output_array([1..4, 1..4]);
var 1..12: month :: output_var = x[2];
var 1..31: day :: output_var = x[1];
var 0..100: X____00009 = x[15];
var 0..100: X____00008 = x[14];
var 0..100: X____00007 = x[13];
var 0..100: X____00006 = x[12];
var 0..100: X____00005 = x[11];
var 0..100: X____00004 = x[6];
var 0..100: X____00003 = x[4];
var 0..100: X____00002 = x[2];
var 0..100: X____00001 = x[1];
var 1900..2000: year :: output_var = INT____00012;
var 0..99: year2 = x[4];
constraint int_eq(1, x[7]);
constraint int_eq(2, x[10]);
constraint int_eq(2, x[16]);
constraint int_eq(5, x[9]);
constraint int_eq(6, x[8]);
constraint int_eq(19, x[3]);
constraint int_eq(39, x[5]);
constraint int_lin_eq([1, 1], [INT____00011, INT____00012], 2007);
constraint int_lin_eq([-1, 100, 1], [INT____00012, x[3], x[4]], 0) :: defines_var(INT____00012);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[1], x[2], x[3], x[4]], 0);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[1], x[5], x[9], x[13]], 0) :: defines_var(INT____00011);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[1], x[6], x[11], x[16]], 0);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[2], x[6], x[10], x[14]], 0);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[3], x[7], x[11], x[15]], 0);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[4], x[7], x[10], x[13]], 0);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[4], x[8], x[12], x[16]], 0);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[5], x[6], x[7], x[8]], 0);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[9], x[10], x[11], x[12]], 0);
constraint int_lin_eq([-1, 1, 1, 1, 1], [INT____00011, x[13], x[14], x[15], x[16]], 0);
solve satisfy;