Мне кажется, данный раздел не самый подходящий для этой задачи… Правильнее было бы «Математика – помогите разобраться» - там получение помощи более вероятно
Как следует из описания, существует два отношения между студентами:
* x является братом y
* x является должником y
Нужно подобрать такие отношения, чтобы удовлетворить всем условиям задачи. Ну, и доказать, что решение единственно (если задача сформулирована корректно).
Если я правильно понимаю условия задачи, то отношения функциональны (описубельны с помощью функций). Значит, для поиска можно использовать два квадрата размером 6 на 6, первый из которых соответствует отношению «является братом», второй – «является должником». «Логическое решение» задачи сводится к последовательному вычеркиванию элементов отношений, которые противоречат условиям задачи. Например, будут вычеркнуты квадратики диагонали, т.к. человек сам себе не брат и сам себе не может быть должен.
Если в результате вычеркивания в квадратах останутся по 6 незачеркнутых квадратиков по одному в строке и по одному в столбце, то задача решена. Если незачеркнутых квадратиков больше – то дополнительно потребуется перебор.
P.S. «Программирование в ограничениях» - разработанный математический аппарат для таких задач.