#acl1c. [acl1_c]Moving Pieces

[acl1_c]Moving Pieces

题目描述

有一个 NNMM 列的棋盘。该棋盘的信息由 NN 个字符串 S1,S2,ldots,SNS_1,S_2,\\ldots,S_N 表示。具体地,棋盘上第 ii 行从上往下和第 jj 列从左往右的方格的状态如下表示:

  • Si,j=S_{i,j}=. :方格为空白。
  • Si,j=S_{i,j}=# :方格上放置了障碍物。
  • Si,j=S_{i,j}=o :方格上放置了棋子。

Yosupo 重复进行以下操作:

  • 选择一个棋子,并将其移动到其右边的相邻方格或下方的相邻方格。禁止将棋子移动到其他棋子或障碍物所在的方格上。同时,不允许将棋子移动到棋盘之外。

Yosupo 希望尽可能多地执行这个操作。找到最大可能的操作次数。

约束条件

  • 1leqNleq501 \\leq N \\leq 50
  • 1leqMleq501 \\leq M \\leq 50
  • SiS_i 是长度为 MM 的由 .#o 组成的字符串。
  • 1leq(1 \\leq ( 棋子数量 )leq100)\\leq 100。换言之,满足 Si,j=S_{i,j}=o(i,j)(i, j) 对的数量在 11100100 之间,包括 11100100

输入

输入以以下格式从标准输入给出:

NN MM S1S_1 S2S_2 vdots\\vdots SNS_N

输出

在一行中打印最大可能的操作次数。


样例输入 1

3 3
o..
...
o.#

样例输出 1

4

Yosupo 可以按照如下方式执行操作 44 次:

o..      .o.      ..o      ...      ...
...  ->  ...  ->  ...  ->  ..o  ->  ..o
o.#      o.#      o.#      o.#      .o#

样例输入 2

9 10
.#....o#..
.#..#..##o
.....#o.##
.###.#o..o
#.#...##.#
..#..#.###
#o.....#..
....###..o
o.......o#

样例输出 2

24