AT_past202010_d.分身
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 N 个格子从左到右排成一列。我们将从左起第 i 个格子称为格子 i。
有些格子上站着忍者,这种分布情况用字符串 S 给出。当 S 的第 i 个字符为 # 时,格子 i 上有忍者;为 . 时,格子 i 上没有忍者。
现在你可以以任意顺序、任意次数进行两种操作,也可以一次都不进行。
- 类型 A:除了格子 1 以外,当前所有有忍者的格子,各自会在左边相邻的格子生成一个分身。分身之后与本体无区别。
- 类型 B:除了格子 N 以外,当前所有有忍者的格子,各自会在右边相邻的格子生成一个分身。分身之后与本体无区别。
设类型 A 操作的次数为 x,类型 B 操作的次数为 y。
请你求出所有操作结束后,每个格子上至少有一个忍者的方案中,使 x+y 最小的一个方案,并输出对应的 x,y。
输入格式
输入从标准输入读入,格式如下:
N S
输出格式
请输出使 x+y 最小的一个方案对应的 x,y,用空格隔开。
输入输出样例
输入#1
5 .#..#
输出#1
1 1
输入#2
6 ..#...
输出#2
2 3
输入#3
3 ###
输出#3
0 0
说明/提示
注意
本题在 2020/11/8 18:00 JST 之前禁止讨论。如果有讨论,可能会被要求赔偿。考试结束后可以公开总分和认证等级,但请不要透露解题情况等信息。
约束条件
- 1≤N≤50
- N 是整数
- S 只包含
.和# - S 至少包含一个
#
样例解释 1
例如,按类型 A、类型 B 的顺序操作,各格子的忍者分布会变为 .#..# → ##.## → #####,最终每个格子都有忍者。类型 A 和类型 B 的总次数小于 2 时无法达成目标,所以这是一个答案。例如 2 0 也是正确答案。
样例解释 2
这是唯一的正确答案。
样例解释 3
有时完全不需要分身操作。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?