P16099 [ICPC 2019 NAIPC] Monotony
Description
You are given an $r \times c$ grid. Each cell of this grid is filled with a number between $1$ and $r \cdot c$ inclusive, and each cell’s number is distinct.
Define a grid of numbers to be *monotonic* if each row and column is either increasing or decreasing (this can be different for each row or column).
Define a *subgrid* of the grid as follows: First choose some nonempty subset of the rows and columns. Next, take elements that lie in both the chosen rows and columns in the same order.
There are $(2^r - 1)(2^c - 1)$ nonempty subgrids of the given grid. Of these subgrids, count how many are monotonic.
Consider this grid:
$$
\begin{array}{}
1 & 2 & 5\\
7 & 6 & 4\\
9 & 8 & 3
\end{array}
$$
There are nine $1 \times 1$ subgrids, nine $1 \times 2$’s, three $1 \times 3$’s, nine $2 \times 1$’s, nine $2 \times 2$’s, three $2 \times 3$’s, three $3 \times 1$’s, three $3 \times 2$’s, and one $3 \times 3$. They are all monotonic, for $9 + 9 + 3 + 9 + 9 + 3 + 3 + 3 + 1 = 49$ monotonic subgrids.
Input Format
Each test case will begin with a line with two space-separated integers $r$ and $c$ ($1 \leq r, c \leq 20$), which are the dimensions of the grid.
Each of the next $r$ lines will contain $c$ space-separated integers $x$ ($1 \leq x \leq r \cdot c$, all $x$’s are unique). This is the grid.
Output Format
Output a single integer, which is the number of monotonic subgrids in the given grid.