AT_joi2015yo_c 気象予報士 (Weather Forecaster)

题目描述

JOI 市呈现南北方向 $H$ 千米、东西方向 $W$ 千米的矩形,被划分为 $H \times W$ 个每边长为 $1$ 千米的小区块。自北向南第 $i$ 行、西向东第 $j$ 列的小区块记作 $(i, j)$。 每个小区块的上空要么有云,要么没有云。所有的云每过 $1$ 分钟会向东移动 $1$ 千米。由于今天天气非常好,JOI 市外的云不会进入 JOI 市内。 现在已知每个小区块上空当前是否有云。作为气象预报员的你,需要预测每个小区块上空距离现在多少分钟后会首次有云经过。 请计算每个小区块距离现在多少分钟后会首次有云经过。

输入格式

输入共 $1 + H$ 行。 第 $1$ 行包含两个整数 $H, W$($1 \leq H \leq 100$,$1 \leq W \leq 100$),表示 JOI 市被划分为 $H \times W$ 个 $1$ 千米见方的小区块。 接下来的 $H$ 行中,第 $i$ 行($1 \leq i \leq H$)为一个长度为 $W$ 的字符串。第 $j$ 个字符($1 \leq j \leq W$)表示小区块 $(i, j)$ 上空当前是否有云。若有云则为字符 `c`(小写字母),无云则为字符 `.`(英文句点)。

输出格式

输出共 $H$ 行,每行包含 $W$ 个整数,整数之间用一个空格隔开。输出的第 $i$ 行第 $j$ 个整数($1 \leq i \leq H$,$1 \leq j \leq W$)表示距离现在多少分钟后小区块 $(i, j)$ 上空会首次有云经过。如果当前已有云,则输出 $0$;如果无论经过多少分钟都不会有云经过,则输出 $-1$。 每行行首和行尾不得有多余空格。

说明/提示

### 样例解释 1 在输入输出样例 $1$ 中,JOI 市被划分为 $3 \times 4$ 个小区块。当前 JOI 市的云分布如下图所示。图中上方为北方。 ![](https://img.atcoder.jp/joi2015yo/2015-yo-t3-fig01.png) 之后,云每过 $1$ 分钟会如下移动: ![](https://img.atcoder.jp/joi2015yo/2015-yo-t3-fig02.png) ![](https://img.atcoder.jp/joi2015yo/2015-yo-t3-fig03.png) ![](https://img.atcoder.jp/joi2015yo/2015-yo-t3-fig04.png) 由 ChatGPT 4.1 翻译