QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#18165. 猴子

Statistics

Monkeyland 是一個無限延伸的數線,上面有 $n$ 隻猴子,編號從 $1$ 到 $n$。第 $i$ 隻猴子最初位於數線上的位置 $p[i]$。多隻猴子可能共享同一個初始位置。

Pan 可以用他的魔法讓每隻猴子移動!每隻猴子的移動方式由一個長度為 $n$ 的字串 $d$ 決定,其中每個字元皆為 L 或 R。令 $d$ 的第 $i$ 個字元為 $d[i]$。

一旦施展魔法,第 $i$ 隻猴子的移動方式如下: 若 $d[i] = \text{L}$,它會向左移動一個位置。 若 $d[i] = \text{R}$,它會向右移動一個位置。

每天,Pan 都會施展一次魔法。如果兩隻猴子在任何一天(包含初始狀態)位於相同的位置,牠們就會成為朋友。若 Pan 施展魔法持續 $k$ 天,請計算會成為朋友的猴子對數。

輸入格式

您的程式必須從標準輸入讀取資料。 第一行包含兩個以空白分隔的整數 $n$ 和 $k$。 第二行包含 $n$ 個以空白分隔的整數 $p[1], p[2], \dots, p[n]$。 第三行包含一個長度為 $n$ 的字串 $d$,由 $d[1], d[2], \dots, d[n]$ 組成。

輸出格式

您的程式必須輸出到標準輸出。 輸出一個整數,代表會成為朋友的猴子對數。 輸出應僅包含單一整數。請勿列印任何額外的文字,例如 Enter a numberThe answer is

資料範圍

對於所有測試資料,輸入將滿足以下限制: $1 \le n \le 200\,000$ $1 \le k \le 10^9$ $1 \le p[i] \le 10^9$,對於所有 $1 \le i \le n$ $d[i]$ 為 L 或 R,對於所有 $1 \le i \le n$

您的程式將在滿足以下限制的輸入實例上進行測試:

子任務 分數 其他限制
0 0 範例測試資料
1 6 $n = 2$
2 13 $d[1] = d[2] = \dots = d[n]$
3 10 $n, k \le 200$
4 22 $n, k \le 3000$
5 18 $n \le 3000$
6 31 無其他限制

範例

範例 1

2 1
1 3
RL
1

說明 1

這裡有 $n = 2$ 隻猴子,Pan 僅施展魔法 $k = 1$ 天。 在第一天,猴子 1 從位置 1 向右移動到位置 2,而猴子 2 從位置 3 向左移動到位置 2。由於牠們在第一天結束時位於相同位置,牠們成為了朋友。因此,恰好有 1 對猴子成為朋友。

範例 2

5 67
1 2 3 4 5
RRRRR
0

說明 2

這裡有 $n = 5$ 隻猴子,Pan 連續施展魔法 $k = 67$ 天。 由於所有猴子的初始位置皆不同,且每當施展魔法時,每隻猴子每天都會向右移動一個位置,因此在任何一天,沒有兩隻猴子會位於相同的位置。因此,沒有任何猴子對會成為朋友。

範例 3

6 7
1 1 8 16 18 22
RRLRLL
3

範例 4

10 30
9 46 27 8 12 100 56 96 6 7
LRLRRLRRLR
5

範例 5

4 2
3 4 4 6
LLRL
2

說明 5

這裡有 $n = 4$ 隻猴子,Pan 連續施展魔法 $k = 2$ 天。 下方的每張圖都將 Monkeyland 描繪為一條僅顯示位置 1 到 6 的數線。每隻猴子上方箭頭指示了施展魔法後牠將移動的方向。

在第 0 天,所有猴子的初始位置如下圖所示。已經位於位置 4 的猴子 2 和猴子 3 成為朋友。

在第 1 天施展魔法後,所有猴子的位置如下圖所示。猴子 3 和猴子 4 在位置 5 相遇並成為朋友。

在第 2 天施展魔法後,所有猴子的位置如下圖所示。這一天沒有兩隻猴子相遇。

因此,總共有 2 對猴子成為朋友:猴子 2 和 3,以及猴子 3 和 4。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.