array [1..10] of int: costs = [19, 16, 18, 13, 15, 19, 15, 17, 16, 15]; array [1..10] of var set of 1..8: a :: output_array([1..10]) = [{1, 6}, {2, 6, 8}, {1, 4, 7}, {2, 3, 5}, {2, 5}, 2..3, 2..4, {4, 5, 8}, {3, 6, 8}, {1, 6, 7}]; array [1..10] of var 0..1: x :: output_array([1..10]); var 0..163: z; constraint int_lin_eq([1, 1], [x[3], x[10]], 1); constraint int_lin_eq([1, 1, 1], [x[1], x[3], x[10]], 1); constraint int_lin_eq([1, 1, 1], [x[2], x[8], x[9]], 1); constraint int_lin_eq([1, 1, 1], [x[3], x[7], x[8]], 1); constraint int_lin_eq([1, 1, 1], [x[4], x[5], x[8]], 1); constraint int_lin_eq([1, 1, 1, 1], [x[1], x[2], x[9], x[10]], 1); constraint int_lin_eq([1, 1, 1, 1], [x[4], x[6], x[7], x[9]], 1); constraint int_lin_eq([1, 1, 1, 1, 1], [x[2], x[4], x[5], x[6], x[7]], 1); constraint int_lin_eq([-1, 19, 16, 18, 13, 15, 19, 15, 17, 16, 15], [z, x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10]], 0); solve minimize z;