#P1672. 交换牛奶(swap)
交换牛奶(swap)
题目描述
Farmer John 的 头奶牛排成一圈,使得对于 中的每个 ,奶牛 右边的奶牛是奶牛 ,而奶牛 右边的奶牛是奶牛 。第 头奶牛有一个容量为整数 升的桶。所有桶初始时都是满的。
每一分钟,奶牛都会根据一个字符串 传递牛奶,该字符串仅由字符 L 和 R 组成。当第 头奶牛至少有 升牛奶时,如果 ,她会将 升牛奶传递给她左边的奶牛,如果 则传递给右边的奶牛。所有交换同时发生(即,如果一头奶牛的桶是满的,送出一升牛奶,但也收到一升,则她的牛奶量保持不变)。如果此时一头奶牛的牛奶量超过 ,则多余的牛奶会损失。
Farmer John 想要知道:经过 分钟后,所有奶牛总共还余下多少牛奶?
输入格式
输入的第一行包含 和 。
第二行包含一个字符串 ,仅由字符 L 或 R 组成,表示每头奶牛传递牛奶的方向。
第三行包含整数 ,为每个桶的容量。
输出格式
输出一个整数,为 分钟后所有奶牛总共余下的牛奶量。
输入输出样例 #1
输入 #1
3 1
RRL
1 1 1
输出 #1
2
奶牛 和 互相传递一升牛奶,因此她们的牛奶得以保留。当奶牛 将牛奶传递给奶牛 时,奶牛 的桶会溢出,从而一分钟后损失了一升牛奶。
输入输出样例 #2
输入 #2
5 20
LLLLL
3 3 2 3 3
输出 #2
14
每头奶牛都将一升牛奶传递给左边的奶牛,并从右边的奶牛那里获得一升牛奶,因此无论经过多长时间所有牛奶都会被保留下来。
输入输出样例 #3
输入 #3
9 5
RRRLRRLLR
5 8 4 9 3 4 9 5 4
输出 #3
38
初始时,共有 升牛奶。 分钟后,奶牛 , 和 将分别损失 , 和 升牛奶。因此,总共还剩下 升牛奶。
数据范围
对于 的数据,有 $1\le N\le 2\cdot 10^5 , 1\le a_i\le 10^9 , 1\le M\le 10^9$ 。
测试点性质
- 测试点 :。
- 测试点 :没有额外限制。
时限:2s
空间:256MB
相关
在下列比赛中: