Наткнулся на интересную задачку, которую часто используют как тестовое задание на собеседованиях. Сама задачка. Есть 12 квадратов с произвольными числами от 0 до 9 в углах. Квадраты расставлены следующим образом: Квадраты надо поменять местами таким образом, чтобы сумма чисел четырех соприкасающихся углов была равна 10 (подкрашено зеленым), а двух или трех углов - не более 10 (подкрашено желтым). На входе текстовый файл, одна строка – четыре числа – значения углов одного квадрата. Порядок строк и чисел в строке следующий: Для примера файл имеет следующий вид: 1 0 7 5 3 4 1 3 5 1 1 4 7 6 1 8 5 7 4 4 8 3 3 4 7 1 5 4 4 1 1 0 3 1 1 4 2 4 3 8 5 1 1 7 4 2 4 2 Окончательный результат перестановки выводится в консоль в том же формате. Если возможно несколько решений, то выводятся все решения, разделенные пустой строкой. Интересует разумеется не сам код, а алгоритм реализации поиска решения. Сам я окончательно запутался.