核心观察:机器人在数轴上一次只走一格,因此在所有执行的步数里,它访问到的坐标一定是一个连续区间。如果把一轮指令(长度为 n
)的行走视为从 0 出发的“路径片段”,记一轮结束时的净位移为 Δ
。设在这一轮内(含起点 0 之后的所有前缀位置)出现的最小坐标为 lo₁
,最大坐标为 hi₁
。当这段指令被重复 k
次时,第 t
轮(从 0 开始计)整体会被平移 t·Δ
,于是全局访问坐标的最小值、最大值分别是:
全局最小:
lo = min_{t=0..k-1} (lo₁ + t·Δ) = lo₁
(若 Δ ≥ 0
),
否则 lo = lo₁ + (k-1)·Δ
(当 Δ < 0
,越往后越小)。
全局最大:
hi = max_{t=0..k-1} (hi₁ + t·Δ) = hi₁
(若 Δ ≤ 0
),
在一条数轴上有一个机器人,初始位于坐标 0 。除此之外,坐标 i 的点上有 ∣i∣ 颗糖果,其中 ∣x∣ 代表 x 的绝对值。
现在小强编写了一段长度为 n 且仅包含 L 和 R 的指令、其中 L 代表让机器人左移一格, R 代表让机器人右移一格。
当机器人第一次到达某个点时,他将获得这个点的所有糖果。现在这段指令将会循环 k 次,问机器人在指令结束后将会获得多少糖果。
第一行两个空格分隔的正整数 n,k 含义如题面所述。
接下来一行一个长度为 n 的字符串,保证字符串中的字符只包含 L 和 R 。
1≤n,k≤106
保证在指令执行时机器人的坐标绝对值不会超过 109 。
仅一行一个整数代表答案。
输入
3 2
RRR
输出
21
说明
机器人的坐标变化是 0−1−2−3−4−5−6 ,共获得 1+2+3+4+5+6=21 块糖果。