AT_acl1_c Moving Pieces

题目描述

有一个由 $N$ 行 $M$ 列组成的棋盘。该棋盘的信息由 $N$ 个字符串 $S_1,S_2,\ldots,S_N$ 表示。具体来说,从上到下第 $i$ 行,从左到右第 $j$ 列的格子的状态如下所示: - $S_{i,j} = $`.` :该格子为空。 - $S_{i,j} = $`#` :该格子上有障碍物。 - $S_{i,j} = $`o` :该格子上有 $1$ 个棋子。 yosupo 君将不断重复以下操作: - 选择一个棋子,将其移动到下方 $1$ 格或右方 $1$ 格。 但不能将棋子移动到有其他棋子或障碍物的格子上。 当然,也不能将棋子移出棋盘。 yosupo 君想要尽可能多地进行操作。请你求出操作次数的最大值。

输入格式

输入通过标准输入按以下格式给出。 > $N$ $M$ > $S_1$ > $S_2$ > $\vdots$ > $S_N$

输出格式

请输出操作次数的最大值。

说明/提示

## 限制条件 - $1 \leq N \leq 50$ - $1 \leq M \leq 50$ - $S_i$ 是由 `.`, `#`, `o` 组成的长度为 $M$ 的字符串。 - $1 \leq$(棋子的个数)$\leq 100$。也就是说,满足 $S_{i,j} = $`o` 的 $(i,j)$ 的个数在 $1$ 到 $100$ 之间。 ## 样例解释 1 可以按如下方式进行 $4$ 次操作。 ``` o.. .o. ..o ... ... ... -> ... -> ... -> ..o -> ..o o.# o.# o.# o.# .o# ``` 由 ChatGPT 4.1 翻译