AT_past202010_d.分身

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 NN 个格子从左到右排成一列。我们将从左起第 ii 个格子称为格子 ii。
有些格子上站着忍者,这种分布情况用字符串 SS 给出。当 SS 的第 ii 个字符为 # 时,格子 ii 上有忍者;为 . 时,格子 ii 上没有忍者。
现在你可以以任意顺序、任意次数进行两种操作,也可以一次都不进行。

  • 类型 A:除了格子 11 以外,当前所有有忍者的格子,各自会在左边相邻的格子生成一个分身。分身之后与本体无区别。
  • 类型 B:除了格子 NN 以外,当前所有有忍者的格子,各自会在右边相邻的格子生成一个分身。分身之后与本体无区别。

设类型 A 操作的次数为 xx,类型 B 操作的次数为 yy。
请你求出所有操作结束后,每个格子上至少有一个忍者的方案中,使 x+yx+y 最小的一个方案,并输出对应的 x,yx, y。

输入格式

输入从标准输入读入,格式如下:

NN SS

输出格式

请输出使 x+yx+y 最小的一个方案对应的 x,yx, y,用空格隔开。

输入输出样例

  • 输入#1

    5
    .#..#

    输出#1

    1 1
  • 输入#2

    6
    ..#...

    输出#2

    2 3
  • 输入#3

    3
    ###

    输出#3

    0 0

说明/提示

注意

本题在 2020/11/8 18:00 JST 之前禁止讨论。如果有讨论,可能会被要求赔偿。考试结束后可以公开总分和认证等级,但请不要透露解题情况等信息。

约束条件

  • 1≤N≤501 \leq N \leq 50
  • NN 是整数
  • SS 只包含 . 和 #
  • SS 至少包含一个 #

样例解释 1

例如,按类型 A、类型 B 的顺序操作,各格子的忍者分布会变为 .#..# → ##.## → #####,最终每个格子都有忍者。类型 A 和类型 B 的总次数小于 22 时无法达成目标,所以这是一个答案。例如 2 0 也是正确答案。

样例解释 2

这是唯一的正确答案。

样例解释 3

有时完全不需要分身操作。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页