Проект «Составление расписания занятий»

Составить расписание академических занятий. Примерные требования:

Входные данные:

  • список групп (уникальных)
  • список преподавателей (уникальных)
  • список предметов (уникальных)
  • список аудиторий (уникальных)

  • список троек группа-предмет-парВНеделю

  • список пар преподаватель-предмет

  • список пар преподаватель-maxПарВНеделю

  • список кортежей преподователь-день-периодВремени-степеньВозможност0-10

  • список кортежей аудитория-доступныйПериодВремени

Выходные данные -- расписание в форме:

  • время-аудитория-группа-преподаватель-предмет

Учесть:

  • комплект преподаватель-предмет-группа неразбиваем и разные занятия максимально равномерно разнесены по времени (мин. единица -- пара)
  • степеньВозможности = 0 означает полную невозможность использовать данный период
  • неуказанная степеньВозможности означает 10
  • парВНеделю для группы должно быть соблюдено точно
  • maxПарВНеделе для преподавателя не должно быть превышено
  • группа в один период времени может быть в одной аудитории, с одним преподавателем, заниматься одним предметом
    • преподаватель в один период времени может быть только с одной группой
    • аудитория в один период времени может быть занята одной группой