CF2150A.Incremental Path

普及-

通过率:0%

AC君温馨提醒

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

题目描述

Rymdkraft - Rymdsylt

⠀

本题不允许使用 Hack。

有一条包含 10910^9 个格子的带子,这些格子按 11 到 10910^9 编号。每个格子可以是黑色或白色。起初,有 mm 个不同的格子 a1,a2,…,ama_1, a_2, \ldots, a_m 是黑色,其余的都是白色。

如果有人当前位于格子 xx,他可能会被给出以下两种指令之一:

  • A\texttt{A}:跳到下一个格子,即格子 x+1x+1;
  • B\texttt{B}:跳到下一个白色格子,即最小的 y>xy > x,满足格子 yy 是白色。

有一串长度为 nn 的命令字符串 ss,包含 nn 个指令。对于每一个 ii 从 11 到 nn,一名"参与者"进行如下操作:

  • 从格子 11 出发;
  • 按顺序执行 ss 的前 ii 个命令;
  • 将最后到达的格子涂黑(如果本来已经是黑色,则保持不变)。

你需要回答,最终哪些格子是黑色的,并按升序输出这些格子的编号。

输入格式

每个测试点包含多组测试数据。第一行为测试用例数 tt(1≤t≤1041 \le t \le 10^4)。随后每组测试用例如下:

每个测试用例第一行包含两个整数 nn 和 mm(1≤n≤1051 \leq n \leq 10^5,1≤m≤1051 \leq m \leq 10^5),分别表示命令数量和初始黑色格子的数量。

第二行是一个长度为 nn 的字符串 ss,由字符 A\texttt{A} 和 B\texttt{B} 组成,表示命令序列。

第三行包含 mm 个正整数 a1,a2,…,ama_1, a_2, \ldots, a_m(1≤a1<a2<…<am≤1091 \leq a_1 < a_2 < \ldots < a_m \leq 10^9),表示初始为黑色的格子的编号。

保证所有测试用例中 nn 的总和不超过 10510^5,mm 的总和不超过 10510^5。

输出格式

对于每个测试用例,输出两行:

  • 第一行输出一个整数 kk,表示最后黑色格子的数量;
  • 第二行输出这 kk 个黑色格子的编号,升序排列。

输入输出样例

  • 输入#1

    5
    3 2
    BAB
    2 5
    3 4
    ABA
    1 4 9 10
    5 2
    ABABB
    1 7
    3 1
    BBA
    6
    1 4
    A
    1 3 4 1000000000

    输出#1

    4
    2 3 5 6 
    7
    1 2 3 4 6 9 10 
    7
    1 2 3 5 6 7 9 
    3
    2 4 6 
    5
    1 2 3 4 1000000000

说明/提示

在第一个测试用例中,最初黑色格子为 22 和 55。

第 11 位参与者:

  • 从 11 号格子出发;
  • 执行命令 B\texttt{B},跳到下一个白色格子(33);
  • 将 33 号格子涂黑。

第 22 位参与者:

  • 从 11 号格子出发;
  • 执行命令 B\texttt{B},跳到下一个白色格子(44);
  • 执行命令 A\texttt{A},跳到下一个格子(55);
  • 将 55 号格子涂黑(已经是黑色,保持不变)。

第 33 位参与者:

  • 从 11 号格子出发;
  • 执行命令 B\texttt{B},跳到下一个白色格子(44);
  • 执行命令 A\texttt{A},跳到下一个格子(55);
  • 执行命令 B\texttt{B},跳到下一个白色格子(66);
  • 将 66 号格子涂黑。

最后黑色格子为 {2,3,5,6}\{2, 3, 5, 6\}。

在第二个测试用例中,三位参与者最终分别停在 22、33、66 号格子。

由 ChatGPT 5 翻译

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

首页