Editorial for DMOPC '22 Contest 4 P2 - Fake Painting
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
After performing all brushstrokes, there are possible final orientations - not flipped, vertically flipped, horizontally flipped, and both vertically and horizontally flipped. Note that a vertical or horizontal flip can be performed without changing the values of the grid. For example, performing
operations choosing the same cell with
as
,
,
and all horizontal flips will simply flip the grid horizontally. The same logic applies to vertical flips. Thus, any final orientation can be reached. That means we can check each possible final orientation, and if one of them works, the answer is yes.
Subtask 1
We run the following check for each orientation: calculate a array
which represents the differences between
and
. Let
,
,
, and
. Then,
must hold. To see this clearly, draw out a
chessboard with alternating white and black tiles. Whenever an operation is performed,
is added to
white tile and
black tile. Thus, the sum of the black tiles must equal the sum of the white tiles.
Subtask 2
We calculate the difference array with size
this time. Note that each cell
is only connected to cell
,
, and
. Now, there are a few cases to consider.
- If
and
, this is the same as the
case, and we can follow the same logic as above.
- If
and
,
is the centre cell. Since
can be arbitrarily added to the cell,
must be even.
- If
, then there are only
cells to consider,
and
. We can arbitrarily add
to either of the cells or add
to both cells, which can achieve any combination of values such that
is even. The same logic applies to the case with
.
After trying all possible orientations, we have our answer.
Remarks
We actually only have to try final orientations, since the cases with no flip/both flips and horizontal flip/vertical flip have the same checks.
Comments