Всем привет, столкнулся с задачей, которую, уверен, можно решить аналитическим методом, а не перебором.

Имеется матрица 8х8. Горизонтали маркированы от 0 до f (16 символов, по два на клетку). Вертикали тоже. Маркировка горизонталей и вертикалей не обязательно одинаковая.
Имеется массив вводных данных, 30 элементов, от d4 до 12, см. рисунок. В каждом элементе первый символ ссылается на горизонталь, второй на вертикаль, как в шахматах.
Задача: замаркировать горизонтали и вертикали так, чтобы каждый элемент ссылался на клетку зелёного цвета, а последний элемент ссылался на красную клетку. Нельзя попадать на оранжевые клетки.
В моем примере последняя клетка красная, а начиная с первой d4, 6a, 4b, 6e зелёные, но f0 оранжевая. Мое решение неверное. Максимум получалось находить 20 первых зелёных клеток, но больше никак.
Как аналитически решить задачу? перебором это получается 15! * 15! вариантов, при условии что известно, где расположены 1 на горизонтали и 2 на вертикали.