#P14330. [JOI2021 预选赛 R2] 往返滑道 / Round Sugoroku
[JOI2021 预选赛 R2] 往返滑道 / Round Sugoroku
题目描述
JOI 高中的葵购买了一条新的滑道。该滑道由 个格子横向排列组成。这些格子从左至右依次编号为 到 。初始时,格子 和格子 上写有字母 x,而格子 ()上写有字符 。其中, 为一个字母或符号 #。
葵使用这条滑道和一个棋子进行游戏。初始时,棋子位于格子 (),且朝向右方。注意, 必须是一个字母。葵每隔 秒钟,将棋子向其当前朝向的方向移动 格。
滑道上设定有如下规则:
- 当棋子落在写有
x的格子上时,棋子的朝向会反转。 - 当棋子落在写有
.的格子上时,不会发生任何变化。 - 当棋子落在写有
#的格子上时,棋子的朝向会反转,且该格子上的字符会变为.。此后,即使棋子再次落在该格子上,朝向也不会再反转。
此外,棋子反转方向或字符变更所耗费的时间可忽略不计。
当给定滑道与棋子的初始状态时,请编写程序,计算所有写有 # 的格子均变为 . 所需的时间。
输入格式
输入通过标准输入以如下格式给出:
其中, 是一个长度为 的字符串,其第 个字符()为 。
输出格式
在标准输出中,输出一行:从开始到所有写有 # 的格子均变为 . 所需的秒数。
7 3
.#.#..#
8
4 1
.#.#
7
6 6
#####.
35
提示
样例 1 解释
随着时间的推移,棋盘的状态将发生如下变化。将右向棋子所在的格子用 > 表示,将左向棋子所在的格子用 < 表示:
X.#>#..#X
X.#.<..#X
X.#<...#X
X.>....#X
X..>...#X
X...>..#X
X....>.#X
X.....>#X
X......<X
样例 2 解释
X>#.#X
X.<.#X
X<..#X
>...#X
X>..#X
X.>.#X
X..>#X
X...<X
数据范围
- 。
- 。
- 为一个字母或符号
#()。 - 为一个字母。
- 至少存在一个 (),使得 为
#。
子任务
- (40 分);
- (60 分)无额外约束。
翻译由 Qwen3-235B 完成