array [1..7] of int: demand = [5, 7, 7, 10, 16, 18, 12]; var 0..8200: INT____00001 :: is_defined_var :: var_is_introduced; array [1..7] of var 0..130: all :: output_array([0..6]); array [1..7] of var 0..30: all_f :: output_array([0..6]); array [1..7] of var 0..30: all_p :: output_array([0..6]); array [1..7] of var 0..120: full_time :: output_array([0..6]); array [1..7] of var 0..120: part_time :: output_array([0..6]); var 0..10000: z :: output_var = INT____00001; constraint int_le(5, all[1]); constraint int_le(7, all[2]); constraint int_le(7, all[3]); constraint int_le(10, all[4]); constraint int_le(12, all[7]); constraint int_le(16, all[5]); constraint int_le(18, all[6]); constraint int_lin_eq([1, -1, -1], [all_p[1], part_time[1], part_time[7]], 0); constraint int_lin_eq([1, -1, -1], [all_p[2], part_time[1], part_time[2]], 0); constraint int_lin_eq([1, -1, -1], [all_p[3], part_time[2], part_time[3]], 0); constraint int_lin_eq([1, -1, -1], [all_p[4], part_time[3], part_time[4]], 0); constraint int_lin_eq([1, -1, -1], [all_p[5], part_time[4], part_time[5]], 0); constraint int_lin_eq([1, -1, -1], [all_p[6], part_time[5], part_time[6]], 0); constraint int_lin_eq([1, -1, -1], [all_p[7], part_time[6], part_time[7]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1], [all_f[1], full_time[1], full_time[4], full_time[5], full_time[6], full_time[7]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1], [all_f[2], full_time[1], full_time[2], full_time[5], full_time[6], full_time[7]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1], [all_f[3], full_time[1], full_time[2], full_time[3], full_time[6], full_time[7]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1], [all_f[4], full_time[1], full_time[2], full_time[3], full_time[4], full_time[7]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1], [all_f[5], full_time[1], full_time[2], full_time[3], full_time[4], full_time[5]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1], [all_f[6], full_time[2], full_time[3], full_time[4], full_time[5], full_time[6]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1], [all_f[7], full_time[3], full_time[4], full_time[5], full_time[6], full_time[7]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1, -1, -1], [all[1], full_time[1], full_time[4], full_time[5], full_time[6], full_time[7], part_time[1], part_time[7]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1, -1, -1], [all[2], full_time[1], full_time[2], full_time[5], full_time[6], full_time[7], part_time[1], part_time[2]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1, -1, -1], [all[3], full_time[1], full_time[2], full_time[3], full_time[6], full_time[7], part_time[2], part_time[3]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1, -1, -1], [all[4], full_time[1], full_time[2], full_time[3], full_time[4], full_time[7], part_time[3], part_time[4]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1, -1, -1], [all[5], full_time[1], full_time[2], full_time[3], full_time[4], full_time[5], part_time[4], part_time[5]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1, -1, -1], [all[6], full_time[2], full_time[3], full_time[4], full_time[5], full_time[6], part_time[5], part_time[6]], 0); constraint int_lin_eq([1, -1, -1, -1, -1, -1, -1, -1], [all[7], full_time[3], full_time[4], full_time[5], full_time[6], full_time[7], part_time[6], part_time[7]], 0); constraint int_lin_eq([-1, 500, 500, 500, 500, 500, 500, 500, 300, 300, 300, 300, 300, 300, 300], [INT____00001, full_time[1], full_time[2], full_time[3], full_time[4], full_time[5], full_time[6], full_time[7], part_time[1], part_time[2], part_time[3], part_time[4], part_time[5], part_time[6], part_time[7]], 0) :: defines_var(INT____00001); solve :: int_search([full_time[1], full_time[2], full_time[3], full_time[4], full_time[5], full_time[6], full_time[7], part_time[1], part_time[2], part_time[3], part_time[4], part_time[5], part_time[6], part_time[7]], input_order, indomain_min, complete) satisfy;