Schedule Mode Builder

Schedule Mode Builder

You are given an unordered list of tasks. Each task is as string, which incudes a start and end of task and has a view "hh:mm-hh:mm". Tasks are unique. You function must return chronologically sorted, filtered list of tasks, which can be scheduled without overlapping. For this purpose, you are also given a mode as an integer, which tells you the rule of choosing non-overlapping tasks.

Modes:

  • 1: earliest start among available, (if a few variants) shortest duration;
  • 2: earliest start among available, (if a few variants) longest duration;
  • 3: longest total duration of chosen tasks, (if a few variants) larger number of tasks done, (if a few variants) earliest;
  • 4: larger number of tasks done, (if a few variants) longest total duration of chosen tasks, (if a few variants) earliest.

At animation tasks are always sorted as earliest start + shortest duration. Each task is positioned on the first "row", where it is not overlapping with the previous task in a "row". If the current task is overlapping with all existed "rows" - the new "row" is started. For example, for the input [['09:00-10:00',...

You should be an authorized user in order to see the full description and start solving this mission.