Ксакеп, а, ну ок, вот решение:
1) Рассмотрим верхний левый квадрат 2x2 и заметим, что если до операции в строке/столбце было x плюсов, то после операции в ней будет 2-x плюсов. Применяя это к первой строке, получаем, что в ней всегда будет 1 минус, т. е. угловой квадрат 2x2 вымостить одними плюсами мы не сможем.
2) Очевидно, что если каждый под-квадрат 2x2 нашего квадрата 4x4 можно вымостить плюсами, то и сам квадрат можно вымостить плюсами. С другой стороны, если можно из положения N привести квадрат в положение 0(без минусов), то, очевидно, можно провести обратное преобразование. От этого и будем отталкиваться при подсчёте. Сначала будем инвертировать только строки. Таким образом получим
положений. Каждому из них соответствует
положений, в которых инвертированы какие-то столбцы. Всего
разрешимых положений.
3) Поступая аналогично предыдущему, получаем формулу
, где c - число разрешимых положений, a - сторона квадрата.
Для прямоугольника формула такая:
, где a, b - стороны, c - число разрешимых положений.