from ortools.sat.python import cp_model
def main():
model = cp_model.CpModel()
start1 = model.NewIntVar(0, 50, 'start1')
duration1 = 10
end1 = model.NewIntVar(0, 50, 'end1')
model.Add(start1 + duration1 <= end1)
model.Add(start1 % 7 == 5)
model.Minimize(end1)
solver = cp_model.CpSolver()
status = solver.Solve(model)
print(solver.StatusName(status))
print(solver.ObjectiveValue())
if status == cp_model.FEASIBLE or status == cp_model.OPTIMAL:
v_start1 = solver.Value(start1)
v_end1 = solver.Value(end1)
print('Task 1 starts at %i and ends at %i with duration %i'
%(v_start1,v_end1,duration1))
if __name__ == '__main__':
main()