Как решить задачу о возвращении в исходную точку?
Возможность возвращения: sum(diff_X) % 2 == 0 && sum(diff_Y) % 2 == 0
Для комбинации перед единицами расставить соответственно sum(diff_X) / 2 и sum(diff_Y) / 2 плюсов и такое же количество минусов. В каком именно порядке - неважно.
На самом деле вся задача заключается в том, что нужно найти, возможно ли из набор значений разбить на два набора, суммы элементов в которых будут равны. Решаете эту задачу отдельно для смещений по X и отдельно для смещений по Y. Если оба раза есть такие разбиения, то возвращаете ответ, в котором минусы будут расставлены у значений из какого-то одного разбиения.