时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
现在小 L 要帮市民扔垃圾了!但为了方便,小 L 只会拿一段连续的垃圾,而且
小 L 为了干净只会左手拿湿垃圾,右手拿干垃圾,所以这一段垃圾的干垃圾数
量一定要等于湿垃圾,不然小 L 就会因不平衡而摔死(误),但当小 L 看到一
堆排列整齐垃圾时,他就懵逼了,而且还有好多的人继续来扔垃圾,而且只会
扔到垃圾堆的前面和后面,小 A 可没那么多时间,小 A 想知道每一个时间一次
最多能拿多少垃圾。
除了干垃圾,湿垃圾,还有可回收垃圾,可回收垃圾会被小 A 背在背上去卖钱
(误×2)所以不用管加上它是否平衡。
输入描述:
一行 n 表示有几个人来扔垃圾。
一行一个字符串表示这一堆垃圾的情况,W 表示湿垃圾,D 表示干垃圾,R 表示
可回收垃圾。
接下来 n 行每行有 p,z,p==1 时表示放前面,p==2 表示放后面,z 表示什么类
型的垃圾。
输出描述:
一共 n+1 行,第一行为一开始没人扔垃圾时的答案。
接下来 n 行表示每一个人扔完垃圾后的答案。
示例1
说明
对于30%的数据,总垃圾数小于等于200
对于60%的数据,总垃圾数小于等于2000
对于100%的数据,总垃圾数小于等于2000000