#5018. Problem 2. Milk Exchange

0

Problem 2. Milk Exchange

Problem 2. Milk Exchange

USACO 2024 February Contest, Bronze

Farmer John 的 NN1N21051 \leq N \leq 2 \cdot 10^5)头奶牛排成一圈,使得对于 1,2,,N11,2,\dots,N-1 中的每个 ii,奶牛 ii 右边的奶牛是奶牛 i+1i+1,而奶牛 NN 右边的奶牛是奶牛 11。第 ii 头奶牛有一个容量为整数 aia_i1ai1091 \leq a_i \leq 10^9)升的桶。所有桶初始时都是满的。

每一分钟,奶牛都会根据一个字符串 s1s2sNs_1s_2\dots s_N 传递牛奶,该字符串仅由字符 ‘L’\text{‘L’}‘R’\text{‘R’} 组成。当第 ii 头奶牛至少有 11 升牛奶时,如果 si=‘L’s_i=\text{‘L’},她会将 11 升牛奶传递给她左边的奶牛,如果 si=‘R’s_i=\text{‘R’} 则传递给右边的奶牛。所有交换同时发生(即,如果一头奶牛的桶是满的,送出一升牛奶,但也收到一升,则她的牛奶量保持不变)。如果此时一头奶牛的牛奶量超过 aia_i,则多余的牛奶会损失。

FJ 想要知道:经过 MM 分钟(1M1091 \leq M \leq 10^9)后,所有奶牛总共还余下多少牛奶?

输入格式(从终端 / 标准输入读入):

输入的第一行包含 NNMM

第二行包含一个字符串 s1s2sNs_1s_2\dots s_N,仅由字符 ‘L’\text{‘L’}‘R’\text{‘R’} 组成,表示每头奶牛传递牛奶的方向。

第三行包含整数 a1,a2,,aNa_1, a_2, \dots, a_N,为每个桶的容量。

输出格式(输出至终端 / 标准输出):

输出一个整数,为 MM 分钟后所有奶牛总共余下的牛奶量。

注意这个问题涉及到的整数可能需要使用 64 位整数型(例如,C/C++ 中的 "long long")。

输入样例:


3 1
RRL
1 1 1

输出样例:


2

奶牛 2233 互相传递一升牛奶,因此她们的牛奶得以保留。当奶牛 11 将牛奶传递给奶牛 22 时,奶牛 22 的桶会溢出,从而一分钟后损失了一升牛奶。

输入样例:


5 20
LLLLL
3 3 2 3 3

输出样例:


14

每头奶牛都将一升牛奶传递给左边的奶牛,并从右边的奶牛那里获得一升牛奶,因此无论经过多长时间所有牛奶都会被保留下来。

输入样例:


9 5
RRRLRRLLR
5 8 4 9 3 4 9 5 4

输出样例:


38

初始时,共有 51 升牛奶。5 分钟后,奶牛 336677 将分别损失 5,3 和 5 升牛奶。因此,总共还剩下 38 升牛奶。

测试点性质: 测试点 4-8:N,M1000N,M \le 1000。测试点 9-16:没有额外限制。

供题:Chongtian Ma,Alex Liang