#P15847. [NOISG 2026 Finals] Monkeys

[NOISG 2026 Finals] Monkeys

题目描述

Monkeyland 是一条无限长的数轴,上面有 nn 只猴子,编号从 11nn。第 ii 只猴子初始位于数轴上的位置 p[i]p[i]。允许多只猴子初始位于同一位置。

Pan 可以使用他的魔法让所有猴子移动!每只猴子的移动方式由一个长度为 nn 的字符串 dd 决定,其中每个字符是 LR。令 dd 的第 ii 个字符为 d[i]d[i]

一旦施放魔法,第 ii 只猴子将按如下规则移动:

  • 如果 d[i]=Ld[i] = \text{L},则它向左移动 一个单位
  • 如果 d[i]=Rd[i] = \text{R},则它向右移动 一个单位

Pan 每天会恰好施放一次魔法。如果在任意一天(包括初始时)两只猴子位于同一位置,它们就会成为 朋友。如果 Pan 连续施法 kk 天,请确定将会成为朋友的 猴子对 的数量。

输入格式

你的程序需要从标准输入读取数据。

输入的第一行包含两个由空格分隔的整数 nnkk

输入的第二行包含 nn 个由空格分隔的整数 p[1],p[2],,p[n]p[1], p[2], \dots, p[n]

输入的第三行包含一个长度为 nn 的字符串 dd,字符依次为 d[1],d[2],,d[n]d[1], d[2], \dots, d[n]

输出格式

你的程序需要向标准输出写入数据。

输出一个整数,表示将会成为朋友的猴子对的数量。

输出应仅包含一个整数。不要输出任何额外的文本,例如 Enter a numberThe answer is

2 1
1 3
RL
1
5 67
1 2 3 4 5
RRRRR
0
6 7
1 1 8 16 18 22
RRLRLL
3
10 30
9 46 27 8 12 100 56 96 6 7
LRLRRLRRLR
5
4 2
3 4 4 6
LLRL
2

提示

样例测试 #1 解释

共有 n=2n = 2 只猴子,Pan 只施法 k=1k = 1 天。

第一天,猴子 1 从位置 11 向右移动到位置 22,而猴子 2 从位置 33 向左移动到位置 22。由于它们在第一天结束时位于同一位置,它们成为了朋友。因此,恰好有 11 对猴子成为了朋友。

样例测试 #2 解释

共有 n=5n = 5 只猴子,Pan 连续施法 k=67k = 67 天。

由于所有猴子的初始位置互不相同,且每次施法时每只猴子都向右移动一个单位,因此在任何一天都不会有两只猴子位于同一位置。所以,没有猴子对能成为朋友。

样例测试 #5 解释

共有 n=4n = 4 只猴子,Pan 连续施法 k=2k = 2 天。

下面的每张图都描绘了 Monkeyland 数轴的一部分,仅显示位置 1166。每只猴子上方的箭头表示它在施法后将移动的方向。

在第 00 天,所有猴子的初始位置如下图所示。已经位于位置 44 的猴子 22 和猴子 33 成为了朋友。

:::align{center} :::

在第 11 天施法后,所有猴子的位置如下图所示。猴子 33 和猴子 44 在位置 55 相遇并成为了朋友。

:::align{center} :::

在第 22 天施法后,所有猴子的位置如下图所示。这一天没有猴子相遇。

:::align{center} :::

因此,总共有 22 对猴子成为了朋友:猴子 2233,以及猴子 3344

子任务

对于所有测试用例,输入数据满足以下限制:

  • 1n2000001 \le n \le 200\,000
  • 1k1091 \le k \le 10^9
  • 对于所有 1in1 \le i \le n,有 1p[i]1091 \le p[i] \le 10^9
  • 对于所有 1in1 \le i \le nd[i]d[i]LR

你的程序将在满足以下限制的输入实例上进行测试:

子任务 分数 额外约束条件
0 样例测试用例
1 6 n=2n = 2
2 13 d[1]=d[2]==d[n]d[1] = d[2] = \cdots = d[n]
3 10 n,k200n, k \le 200
4 22 n,k3000n, k \le 3000
5 18 n3000n \le 3000
6 31 无额外约束

翻译由 DeepSeek V3.2 完成