predicate 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_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_cumulative(array [int] of var int: s, array [int] of int: d, array [int] of int: r, var int: b); array [1..264] of int: P = [1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 16, 1, 5, 1, 6, 1, 7, 0, 0, 0, 0, 24, 2, 1, 2, 2, 0, 0, 0, 0, 0, 0, 17, 2, 4, 2, 5, 2, 6, 2, 7, 0, 0, 29, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 35, 4, 2, 4, 3, 0, 0, 0, 0, 0, 0, 7, 4, 5, 4, 6, 0, 0, 0, 0, 0, 0, 8, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 16, 6, 1, 6, 2, 6, 3, 6, 4, 0, 0, 21, 6, 6, 6, 7, 0, 0, 0, 0, 0, 0, 5, 7, 1, 7, 2, 7, 3, 0, 0, 0, 0, 6, 7, 6, 7, 7, 0, 0, 0, 0, 0, 0, 3, 1, 1, 2, 1, 3, 1, 0, 0, 0, 0, 23, 1, 2, 2, 2, 3, 2, 4, 2, 0, 0, 30, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 27, 1, 6, 2, 6, 0, 0, 0, 0, 0, 0, 12, 1, 7, 2, 7, 0, 0, 0, 0, 0, 0, 16, 2, 4, 3, 4, 0, 0, 0, 0, 0, 0, 17, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 15, 4, 6, 5, 6, 6, 6, 7, 6, 0, 0, 12, 5, 4, 6, 4, 0, 0, 0, 0, 0, 0, 7, 5, 7, 6, 7, 7, 7, 0, 0, 0, 0, 7, 6, 1, 7, 1, 0, 0, 0, 0, 0, 0, 11, 6, 2, 7, 2, 0, 0, 0, 0, 0, 0, 10]; array [1..26] of int: blanks = [1, 3, 1, 4, 2, 3, 3, 6, 3, 7, 4, 1, 4, 4, 4, 7, 5, 1, 5, 2, 6, 5, 7, 4, 7, 5]; array [1..49] of var 0..9: x :: output_array([1..7, 1..7]); constraint all_different_int([x[1], x[2]]); constraint all_different_int([x[6], x[13]]); constraint all_different_int([x[7], x[14]]); constraint all_different_int([x[8], x[9]]); constraint all_different_int([x[11], x[18]]); constraint all_different_int([x[23], x[24]]); constraint all_different_int([x[26], x[27]]); constraint all_different_int([x[32], x[39]]); constraint all_different_int([x[36], x[43]]); constraint all_different_int([x[37], x[44]]); constraint all_different_int([x[41], x[42]]); constraint all_different_int([x[48], x[49]]); constraint all_different_int([x[1], x[8], x[15]]); constraint all_different_int([x[5], x[6], x[7]]); constraint all_different_int([x[35], x[42], x[49]]); constraint all_different_int([x[43], x[44], x[45]]); constraint all_different_int([x[2], x[9], x[16], x[23]]); constraint all_different_int([x[11], x[12], x[13], x[14]]); constraint all_different_int([x[27], x[34], x[41], x[48]]); constraint all_different_int([x[36], x[37], x[38], x[39]]); constraint all_different_int([x[5], x[12], x[19], x[26], x[33]]); constraint all_different_int([x[15], x[16], x[17], x[18], x[19]]); constraint all_different_int([x[17], x[24], x[31], x[38], x[45]]); constraint all_different_int([x[31], x[32], x[33], x[34], x[35]]); constraint int_eq(x[3], 0); constraint int_eq(x[4], 0); constraint int_eq(x[10], 0); constraint int_eq(x[20], 0); constraint int_eq(x[21], 0); constraint int_eq(x[22], 0); constraint int_eq(x[25], 0); constraint int_eq(x[28], 0); constraint int_eq(x[29], 0); constraint int_eq(x[30], 0); constraint int_eq(x[40], 0); constraint int_eq(x[46], 0); constraint int_eq(x[47], 0); constraint int_lin_eq([1, 1], [x[1], x[2]], 16); constraint int_lin_eq([1, 1], [x[6], x[13]], 12); constraint int_lin_eq([1, 1], [x[7], x[14]], 16); constraint int_lin_eq([1, 1], [x[8], x[9]], 17); constraint int_lin_eq([1, 1], [x[11], x[18]], 17); constraint int_lin_eq([1, 1], [x[23], x[24]], 7); constraint int_lin_eq([1, 1], [x[26], x[27]], 8); constraint int_lin_eq([1, 1], [x[32], x[39]], 7); constraint int_lin_eq([1, 1], [x[36], x[43]], 11); constraint int_lin_eq([1, 1], [x[37], x[44]], 10); constraint int_lin_eq([1, 1], [x[41], x[42]], 5); constraint int_lin_eq([1, 1], [x[48], x[49]], 3); constraint int_lin_eq([1, 1, 1], [x[1], x[8], x[15]], 23); constraint int_lin_eq([1, 1, 1], [x[5], x[6], x[7]], 24); constraint int_lin_eq([1, 1, 1], [x[35], x[42], x[49]], 7); constraint int_lin_eq([1, 1, 1], [x[43], x[44], x[45]], 6); constraint int_lin_eq([1, 1, 1, 1], [x[2], x[9], x[16], x[23]], 30); constraint int_lin_eq([1, 1, 1, 1], [x[11], x[12], x[13], x[14]], 29); constraint int_lin_eq([1, 1, 1, 1], [x[27], x[34], x[41], x[48]], 12); constraint int_lin_eq([1, 1, 1, 1], [x[36], x[37], x[38], x[39]], 21); constraint int_lin_eq([1, 1, 1, 1, 1], [x[5], x[12], x[19], x[26], x[33]], 27); constraint int_lin_eq([1, 1, 1, 1, 1], [x[15], x[16], x[17], x[18], x[19]], 35); constraint int_lin_eq([1, 1, 1, 1, 1], [x[17], x[24], x[31], x[38], x[45]], 15); constraint int_lin_eq([1, 1, 1, 1, 1], [x[31], x[32], x[33], x[34], x[35]], 16); constraint int_lt(0, x[1]); constraint int_lt(0, x[2]); constraint int_lt(0, x[5]); constraint int_lt(0, x[6]); constraint int_lt(0, x[7]); constraint int_lt(0, x[8]); constraint int_lt(0, x[9]); constraint int_lt(0, x[11]); constraint int_lt(0, x[12]); constraint int_lt(0, x[13]); constraint int_lt(0, x[14]); constraint int_lt(0, x[15]); constraint int_lt(0, x[16]); constraint int_lt(0, x[17]); constraint int_lt(0, x[18]); constraint int_lt(0, x[19]); constraint int_lt(0, x[23]); constraint int_lt(0, x[24]); constraint int_lt(0, x[26]); constraint int_lt(0, x[27]); constraint int_lt(0, x[31]); constraint int_lt(0, x[32]); constraint int_lt(0, x[33]); constraint int_lt(0, x[34]); constraint int_lt(0, x[35]); constraint int_lt(0, x[36]); constraint int_lt(0, x[37]); constraint int_lt(0, x[38]); constraint int_lt(0, x[39]); constraint int_lt(0, x[41]); constraint int_lt(0, x[42]); constraint int_lt(0, x[43]); constraint int_lt(0, x[44]); constraint int_lt(0, x[45]); constraint int_lt(0, x[48]); constraint int_lt(0, x[49]); solve :: int_search([x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17], x[18], x[19], x[20], x[21], x[22], x[23], x[24], x[25], x[26], x[27], x[28], x[29], x[30], x[31], x[32], x[33], x[34], x[35], x[36], x[37], x[38], x[39], x[40], x[41], x[42], x[43], x[44], x[45], x[46], x[47], x[48], x[49]], first_fail, indomain_max, complete) satisfy;