array [1..3] of int: capacity = [500, 300, 400]; array [1..12] of int: cost = [10, 8, 5, 9, 7, 5, 5, 3, 11, 10, 8, 7]; array [1..4] of int: demand = [200, 400, 300, 100]; var int: INT____00001 :: is_defined_var :: var_is_introduced; array [1..12] of var int: x :: output_array([1..3, 1..4]); var int: z :: output_var = INT____00001; constraint int_le(0, x[1]); constraint int_le(0, x[2]); constraint int_le(0, x[3]); constraint int_le(0, x[4]); constraint int_le(0, x[5]); constraint int_le(0, x[6]); constraint int_le(0, x[7]); constraint int_le(0, x[8]); constraint int_le(0, x[9]); constraint int_le(0, x[10]); constraint int_le(0, x[11]); constraint int_le(0, x[12]); constraint int_lin_eq([1, 1, 1], [x[1], x[5], x[9]], 200); constraint int_lin_eq([1, 1, 1], [x[2], x[6], x[10]], 400); constraint int_lin_eq([1, 1, 1], [x[3], x[7], x[11]], 300); constraint int_lin_eq([1, 1, 1], [x[4], x[8], x[12]], 100); constraint int_lin_eq([-1, 10, 8, 5, 9, 7, 5, 5, 3, 11, 10, 8, 7], [INT____00001, x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12]], 0) :: defines_var(INT____00001); constraint int_lin_le([1, 1, 1, 1], [x[1], x[2], x[3], x[4]], 500); constraint int_lin_le([1, 1, 1, 1], [x[5], x[6], x[7], x[8]], 300); constraint int_lin_le([1, 1, 1, 1], [x[9], x[10], x[11], x[12]], 400); 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]], first_fail, indomain, complete) minimize INT____00001;