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 number 或 The 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。