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..26] of var -100..100: A_abs; var 0..100: INT____00001 :: var_is_introduced = A_abs[1]; var 0..100: INT____00002 :: var_is_introduced = A_abs[2]; var 0..100: INT____00003 :: var_is_introduced = A_abs[3]; var 0..100: INT____00004 :: var_is_introduced = A_abs[4]; var 0..100: INT____00005 :: var_is_introduced = A_abs[5]; var 0..100: INT____00006 :: var_is_introduced = A_abs[6]; var 0..100: INT____00007 :: var_is_introduced = A_abs[7]; var 0..100: INT____00008 :: var_is_introduced = A_abs[8]; var 0..100: INT____00009 :: var_is_introduced = A_abs[9]; var 0..100: INT____00010 :: var_is_introduced = A_abs[10]; var 0..100: INT____00011 :: var_is_introduced = A_abs[11]; var 0..100: INT____00012 :: var_is_introduced = A_abs[12]; var 0..100: INT____00013 :: var_is_introduced = A_abs[13]; var 0..100: INT____00014 :: var_is_introduced = A_abs[14]; var 0..100: INT____00015 :: var_is_introduced = A_abs[15]; var 0..100: INT____00016 :: var_is_introduced = A_abs[16]; var 0..100: INT____00017 :: var_is_introduced = A_abs[17]; var 0..100: INT____00018 :: var_is_introduced = A_abs[18]; var 0..100: INT____00019 :: var_is_introduced = A_abs[19]; var 0..100: INT____00020 :: var_is_introduced = A_abs[20]; var 0..100: INT____00021 :: var_is_introduced = A_abs[21]; var 0..100: INT____00022 :: var_is_introduced = A_abs[22]; var 0..100: INT____00023 :: var_is_introduced = A_abs[23]; var 0..100: INT____00024 :: var_is_introduced = A_abs[24]; var 0..100: INT____00025 :: var_is_introduced = A_abs[25]; var 0..100: INT____00026 :: var_is_introduced = A_abs[26]; var -100..100: a; var 0..26: a_max :: output_var; var -100..100: b; var -100..100: c; var -100..100: d; var -100..100: e; var -100..100: f; var -100..100: g; var -100..100: h; var -100..100: i; var -100..100: j; var -100..100: k; var -100..100: l; var -100..100: m; var -100..100: n; var -100..100: o; var -100..100: p; var -100..100: q; var -100..100: r; var -100..100: s; var -100..100: t; var -100..100: u; var -100..100: v; var -100..100: w; var -100..100: x; var -100..100: y; var -100..100: z; array [1..26] of var -100..100: A :: output_array([1..26]) = [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z]; constraint all_different_int(A); constraint int_abs(a, A_abs[1]); constraint int_abs(b, A_abs[2]); constraint int_abs(c, A_abs[3]); constraint int_abs(d, A_abs[4]); constraint int_abs(e, A_abs[5]); constraint int_abs(f, A_abs[6]); constraint int_abs(g, A_abs[7]); constraint int_abs(h, A_abs[8]); constraint int_abs(i, A_abs[9]); constraint int_abs(j, A_abs[10]); constraint int_abs(k, A_abs[11]); constraint int_abs(l, A_abs[12]); constraint int_abs(m, A_abs[13]); constraint int_abs(n, A_abs[14]); constraint int_abs(o, A_abs[15]); constraint int_abs(p, A_abs[16]); constraint int_abs(q, A_abs[17]); constraint int_abs(r, A_abs[18]); constraint int_abs(s, A_abs[19]); constraint int_abs(t, A_abs[20]); constraint int_abs(u, A_abs[21]); constraint int_abs(v, A_abs[22]); constraint int_abs(w, A_abs[23]); constraint int_abs(x, A_abs[24]); constraint int_abs(y, A_abs[25]); constraint int_abs(z, A_abs[26]); constraint int_lin_eq([1, 1, 1], [e, n, o], 1); constraint int_lin_eq([1, 1, 1], [e, n, t], 10); constraint int_lin_eq([1, 1, 1], [i, s, x], 6); constraint int_lin_eq([1, 1, 1], [o, t, w], 2); constraint int_lin_eq([1, 1, 2], [e, i, n], 9); constraint int_lin_eq([1, 1, 1, 1], [e, f, i, v], 5); constraint int_lin_eq([1, 1, 1, 1], [e, o, r, z], 0); constraint int_lin_eq([1, 1, 1, 1], [f, o, r, u], 4); constraint int_lin_eq([2, 1, 1, 1], [e, h, r, t], 3); constraint int_lin_eq([2, 1, 1, 1], [e, n, s, v], 7); constraint int_lin_eq([3, 1, 1, 1], [e, l, n, v], 11); constraint int_lin_eq([1, 1, 1, 1, 1], [e, f, l, t, w], 12); constraint int_lin_eq([1, 1, 1, 1, 1], [e, g, h, i, t], 8); constraint maximum_int(a_max, A_abs); solve :: int_search(A, first_fail, indomain_max, complete) minimize a_max;