logo AlgoBeat OnlineJudge
登录 注册

#214441. [JOI2021 预选赛 R2] 往返滑道 / Round Sugoroku

内存限制:1024 MiB 时间限制:2000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

JOI 高中的葵购买了一条新的滑道。该滑道由 个格子横向排列组成。这些格子从左至右依次编号为 。初始时,格子 和格子 上写有字母 X,而格子 )上写有字符 。其中, 为一个符号 . 或符号 #

葵使用这条滑道和一个棋子进行游戏。初始时,棋子位于格子 ),且朝向右方。注意, 一定是符号 .。葵每隔 秒钟,将棋子向其当前朝向的方向移动 格。

滑道上设定有如下规则:

  • 当棋子落在写有 X 的格子上时,棋子的朝向会反转。
  • 当棋子落在写有 . 的格子上时,不会发生任何变化。
  • 当棋子落在写有 # 的格子上时,棋子的朝向会反转,且该格子上的字符会变为 .。此后,即使棋子再次落在该格子上,朝向也不会再反转。

此外,棋子反转方向或字符变更所耗费的时间可忽略不计。

当给定滑道与棋子的初始状态时,请编写程序,计算所有写有 # 的格子均变为 . 所需的时间。

输入格式

输入通过标准输入以如下格式给出:

其中, 是一个长度为 的字符串,其第 个字符()为

输出格式

在标准输出中,输出一行:从开始到所有写有 # 的格子均变为 . 所需的秒数。

样例

样例输入 1

7 3
.#.#..#

样例输出 1

8

样例输入 2

4 1
.#.#

样例输出 2

7

样例输入 3

6 6
#####.

样例输出 3

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

数据范围

  • 为符号 . 或符号 #)。
  • 为符号 .
  • 至少存在一个 ),使得 #

子任务

  1. (40 分)
  2. (60 分)无额外约束。

翻译由 Qwen3-235B 完成