Strongest Takahashi

AtCoder
IDabc233_g
Time2000ms
Memory256MB
Difficulty
There is a $N \times N$ grid, with blocks on some squares. The grid is described by $N$ strings $S_1,S_2,\dots,S_N$, as follows. * If the $j$\-th character of $S_i$ is `#`, there is a block on the square at the $i$\-th row from the top and $j$\-th column from the left. * If the $j$\-th character of $S_i$ is `.`, there is not a block on the square at the $i$\-th row from the top and $j$\-th column from the left. Takahashi can do the operation below zero or more times. * First, choose an integer $D$ between $1$ and $N$ (inclusive), and a $D \times D$ subsquare within the grid. * Then, consume $D$ stamina points to destroy all blocks within the subsquare. Find the minimum number of stamina points needed to destroy all the blocks. ## Constraints * $N$ is an integer. * $1 \le N \le 50$ * $S_i$ consists of `#` and `.`. * $|S_i|=N$ ## Input Input is given from Standard Input in the following format: $N$ $S_1$ $S_2$ $\vdots$ $S_N$ [samples]
Samples
Input #1
5
##...
.##..
#.#..
.....
....#
Output #1
4

By choosing the subsquares below, Takahashi will consume $4$ stamina points, which is optimal.

*   The $3 \times 3$ subsquare whose top-left square is at the $1$\-st row from the top and $1$\-st column from the left.
*   The $1 \times 1$ subsquare whose top-left square is at the $5$\-th row from the top and $5$\-th column from the left.
Input #2
3
...
...
...
Output #2
0

There may be no block on the grid.
Input #3
21
.....................
.....................
...#.#...............
....#.............#..
...#.#...........#.#.
..................#..
.....................
.....................
.....................
..........#.....#....
......#..###.........
........#####..#.....
.......#######.......
.....#..#####........
.......#######.......
......#########......
.......#######..#....
......#########......
..#..###########.....
.........###.........
.........###.........
Output #3
19
API Response (JSON)
{
  "problem": {
    "name": "Strongest Takahashi",
    "description": {
      "content": "There is a $N \\times N$ grid, with blocks on some squares.   The grid is described by $N$ strings $S_1,S_2,\\dots,S_N$, as follows. *   If the $j$\\-th character of $S_i$ is `#`, there is a block on th",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "abc233_g"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "There is a $N \\times N$ grid, with blocks on some squares.  \nThe grid is described by $N$ strings $S_1,S_2,\\dots,S_N$, as follows.\n\n*   If the $j$\\-th character of $S_i$ is `#`, there is a block on th...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments