Разработать скрипт на Python (задача комбинаторики)

Проект: Оптимальное размещение участников форума в гостиницах
Задача: Разработать скрипт на Python c подробными комментариями. Скрипт должен быть универсален, т.е. входные данные могут меняться (может меняться количество мест в гостиницах, количество участников). При нехватке мест указать в таблице выходных данных - "участник не размещен".

Входные данные:
1. Список участников с id, страна участника, организация участника, категория участника, пол участника, спец.требование участника (тестовые данные во вложени).
2. Информация по гостиницам (в одной комнате несколько мест). Название гостиницы, этаж, номер комнаты. Номер комнаты повторяется в соответствии с наличием мест (тестовые данные во вложении).

Выходные данные:
1. Таблица ексель с распределением учатников по комнатам (пример во вложении).

Срок: 1-2 дня

Правила размещения:
1. Участники одной страны размещаются в одной гостинице. Допускается размещаение нескольких стран в одной гостинице, кроме п. 5.
2. Участники одной организации размещаются близко.
3. Участники категории 1 размещаются отдельно. Участники категории 3 и категории 4 могут разместиться вместе, но строго отделно от категории 1.
4. Участники разных полов строго размещаются отдельно.
5. Участники с спец.требованиями размещаются в соответсвии с предыдущими правилами + дополнительные правила. Участники с красным требованием размещаются в разных общежитиях. Участники с желтым требованием размещаются по правилу: мужской и женский пол на разных этажах.

Доп. инфо:
Участников мужского пола больше - возможно следует размесстить их первее.

Читайте на 123ru.net