AT_joi2021_yo2_a.往復すごろく (Round Sugoroku)
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
JOI 高中的葵购买了一款新的双六棋盘。这款双六棋盘由 N+2 个格子横向排列而成。这些格子从左到右依次编号为 0 到 N+1。初始时,格子 0 和格子 N+1 上写有 X,格子 i(1≤i≤N)上写有 Si。其中,Si 是字符 . 或 #。
葵用这款双六棋盘和一个棋子进行游戏。最开始,棋子被放置在格子 A(1≤A≤N)上,面朝右方。此时,SA 一定是 .。每经过 1 秒,棋子会按当前朝向移动到相邻的一个格子。
该双六棋盘有如下规则:
- 当棋子停在写有
X的格子上时,棋子的朝向会反转。 - 当棋子停在写有
.的格子上时,什么都不会发生。 - 当棋子停在写有
#的格子上时,棋子的朝向会反转,并且该格子上的字符会被改为.。因此,之后棋子再停在这个格子上时,朝向不会再反转。
此外,棋子的反转和字符的更改所需时间可以忽略不计。
给定双六棋盘和棋子的初始状态,请编写程序计算所有写有 # 的格子都被消除所需的时间。
输入格式
输入从标准输入按以下格式给出:
N A S
其中,S 是一个长度为 N 的字符串,第 i 个字符(1≤i≤N)为 Si。
输出格式
请输出使所有写有 # 的格子都被消除所需的秒数。
输入输出样例
输入#1
7 3 .#.#..#
输出#1
8
输入#2
4 1 .#.#
输出#2
7
输入#3
6 6 #####.
输出#3
35
说明/提示
限制条件
- 2≤N≤200000。
- 1≤A≤N。
- Si 是字符
.或#(1≤i≤N)。 - SA 是字符
.。 - 至少存在一个 i(1≤i≤N),使得 Si 是
#。
子任务
1.(40 分)N≤3000。
2.(60 分)无额外限制。
样例解释 1
随着时间的推移,双六棋盘的状态如下所示。右向棋子用 > 表示,左向棋子用 < 表示。
X.#>#..#XX.#.<..#XX.#<...#XX.>....#XX..>...#XX...>..#XX....>.#XX.....>#XX......
样例解释 2
随着时间的推移,双六棋盘的状态如下所示。
X>#.#XX.<.#XX<..#X>...#XX>..#XX.>.#XX..>#XX...
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?