Ну вот тупой перебор. Тупой, но формализованный, поэтому хватает примерно девяти шагов.
Исходные данные (строки -- высказывающиеся, столбцы -- про кого):
Код:
А Б В Г Д
А 5 1 4
Б 2 5 1
В 5 1 3
Г 1 2 4
Д 4 2 1
Вариант + - - для строки А
Заполняем колонку В, ставим "-" для неправильных "5", дублируем "1-" в кол. Г и "4-" в кол. Д:
Код:
А Б В Г Д
А 5 + 1 - 4 -
Б 2 5 - 1
В 5 - 1 3
Г 1 2 - 4 -
Д 4 2 1 -
Закрываем строку Г, заполняем колонку Б, ставим "-" для неправильных "1":
Код:
А Б В Г Д
А 5 + 1 - 4 -
Б 2 5 - 1 -
В 5 - 1 + 3
Г 1 + 2 - 4 -
Д 4 2 - 1 -
Закрываем строки Б,В,Д:
Код:
А Б В Г Д
А 5 + 1 - 4 -
Б 2 + 5 - 1 -
В 5 - 1 + 3 -
Г 1 + 2 - 4 -
Д 4 + 2 - 1 -
???
Получили противоречие в колонке А.
Вариант - + - для строки А
Заполняем колонку Г, ставим "-" для неправильных "1", дублируем "5-" в кол. В и "4-" в кол. Д:
Код:
А Б В Г Д
А 5 - 1 + 4 -
Б 2 5 - 1 -
В 5 1 - 3 -
Г 1 - 2 4 -
Д 4 2 1 -
Закрываем строки Б,В,Г:
Код:
А Б В Г Д
А 5 - 1 + 4 -
Б 2 + 5 - 1 -
В 5 + 1 - 3 -
Г 1 - 2 + 4 -
Д 4 2 1 -
???
Получили противоречие в колонке А.
Вариант - - + для строки А
Заполняем колонку Д, ставим "-" для неправильных "4", закрываем строку Г, дублируем "1-" в колонке Б:
Код:
А Б В Г Д
А 5 - 1 - 4 +
Б 2 5 1 -
В 5 1 - 3
Г 1 - 2 - 4 +
Д 4 - 2 1
Данных мало - перебираем варианты строки Б
Подвариант + - - для строки Б
Заполняем колонку А, ставим "-" для неправильных "2":
Код:
А Б В Г Д
А 5 - 1 - 4 +
Б 2 + 5 - 1 -
В 5 - 1 - 3
Г 1 - 2 - 4 +
Д 4 - 2 - 1
Закрываем строки В,Д:
Код:
А Б В Г Д
А 5 - 1 - 4 +
Б 2 + 5 - 1 -
В 5 - 1 - 3 +
Г 1 - 2 - 4 +
Д 4 - 2 - 1 +
Нашли решение:
А Б В Г Д
2 5 1 3 4
Подвариант - + - для строки Б
Заполняем колонку Г, ставим "-" для неправильных "5":
Код:
А Б В Г Д
А 5 - 1 - 4 +
Б 2 - 5 + 1 -
В 5 - 1 - 3 - ???
Г 1 - 2 - 4 +
Д 4 - 2 1
Получили противоречие в строке В
Итого -- единственное решение.