fork download
  1. from functools import cmp_to_key
  2.  
  3. class Activity:
  4. def __init__(self, activity_name, start, finish):
  5. self.activity_name = activity_name
  6. self.start = start
  7. self.finish = finish
  8.  
  9. def __str__(self):
  10. return f"{self.activity_name}"
  11.  
  12.  
  13. def my_comparator(a, b):
  14. if a.finish < b.finish:
  15. return -1
  16. elif a.finish > b.finish:
  17. return 1
  18. else:
  19. return 0
  20.  
  21. activities = [
  22. Activity("a1", 1, 3),
  23. Activity("a2", 0, 4),
  24. Activity("a3", 1, 2),
  25. Activity("a4", 4, 6),
  26. Activity("a5", 2, 9),
  27. Activity("a6", 5, 8),
  28. Activity("a7", 3, 5),
  29. Activity("a8", 4, 8)
  30. ]
  31. activities.sort(key=cmp_to_key(my_comparator))
  32.  
  33. # for activity in activities:
  34. # print(activity, end = " ")
  35.  
  36. taken_activities = []
  37. taken_activities.append(activities[0])
  38. available_time = activities[0].finish
  39.  
  40. for i in range(1, len(activities)):
  41. if activities[i].start >= available_time:
  42. taken_activities.append(activities[i])
  43. available_time = activities[i].finish
  44.  
  45. for activity in taken_activities:
  46. print(activity)
  47.  
  48.  
Success #stdin #stdout 0.1s 14016KB
stdin
Standard input is empty
stdout
a3
a7
a6