private static List<Activity> GetNotOverlappingActivities(List<Activity> activities)
{
activities.Sort();
var selectedActivities = new List<Activity>();
Activity lastSelectedActivity = activities.First();
selectedActivities.Add(lastSelectedActivity);
for (int i = 1; i < activities.Count; i++)
{
Activity activity = activities[i];
if (lastSelectedActivity.IsCompatible(activity))
{
selectedActivities.Add(activity);
lastSelectedActivity = activity;
}
}
return selectedActivities;
}