to AmberSoler: Вы конечно правы, но все таки не стоит сбрасывать со счетов список запрещения, т.к. с ним количество итераций, а следовательно и время работы программы сокращается. т.е. алгоритм действий, я думаю, будет такой:
1)в список ограничений задаются навыки которые не желательны... и запускаем программу. Она отработает на порядок быстрее и мы уведем приблизительный расклад без "левых" навыков... если он нас устраивает, то все! а если нет, то:
2) запускаем программу без списка запрещения... и видим что мы можем получить с "левыми" навыками...
Да не спорю второй раз запускать - это увеличение времени... но зато есть шанс обойтись малой кровью...
Поэтому, если уважаемый vbn реализует список запрещенных навыков, то не востребованным он точно не останется!
С уважением.