Эффективный алгоритм учета времени

У меня есть работа, которую меня попросили сделать, которая включает в себя написание программы, чтобы определить, где различные люди должны работать в данный день.

Например, ввод может быть:
4-6 вечера, сайт А
1-2 вечера, сайт B
9-11 утра и 2-4 вечера сайт А

По сути, может быть много сайтов, и люди могут работать в течение нескольких блоков. У меня такое ощущение, что такого рода проблемы давно решены, поэтому вместо того, чтобы заново изобретать колесо, я надеялся, что кто-нибудь может указать мне в направлении элегантного решения.

Редактировать: Читая похожие вопросы, я чувствую, что проблема может быть NP завершена. Мне не нужно самое эффективное решение, только то, что работает и вполне нормально.

Редактировать 2: Чтобы уточнить, выходной должен быть график с людьми, распределенными так, чтобы промежутки (случаи, когда никто не работает) был как можно меньше.

Ответы на вопрос(1)

Ваш ответ на вопрос