P6968 [NEERC 2016] Expect to Wait

题目描述

# [NEERC2016] Expect to Wait 市长小A想要给H市添加独轮车车站,任何有“特殊的卡片”的人,都可以到车站请求骑车或停放。 申请独轮车很简单,申请骑车的人到车站排队,如果那个站有独轮车停放,那么就让处于队头位置的人先骑,否则,排队的人会等到有人把独轮车送到车站。 定义等待时间为从请求人开始排队到取到车所花的时间,如果一个人取不到独轮车,那么等待的时间是无限(infinity)的。总等待时间是每个人等待时间的总和。 小A已经知道人们每天在什么时候向车站请求和放下独轮车,车站可以同时容纳无限独轮车。他会告诉你每天车站里人们的用车计划,然后对你进行n次询问,每次提问会告诉你一天开始时车站里有的独轮车数,请你来计算每个问题所对应的总等待时间。

输入格式

第一行包含两个正整数 $n$ 和 $q (1 \le n , q \le 10^{5} ),$ $n$代表有n个用车计划, $q$代表小A会问你n个问题 接下来$n$行代表每个用车计划,每个计划包含一个操作说明: $+tk$ 代表人们在$t$时间要求停放$k$辆车; $- t k$ 代表人们在$t$时间要求取$k$辆车. 对于每个用车计划: $1 \le t \le 10^{9}$ and $1 \le k \le 10^{4}$ . 输入的最后一行包含 $q$ 个不同的整数 $b_{i} (0 \le b_{i} \le 10^{9}$ ) -- 一天开始时独轮车的数量。 操作的顺序是按时间复杂度从小到大的

输出格式

输出应包括$q$行。第i行应显示当天开始时$b_{i}$独轮车的总等待时间。如果总等待时间是无限的,则相应的行应显示单词`INFINITY`。 ## 样例 #1 ### 样例输入 #1 ``` 5 4 - 1 1 - 2 2 + 4 1 - 6 1 + 7 2 0 3 1 2 ``` ### 样例输出 #1 ``` INFINITY 0 8 3 ```

说明/提示

时间限制: 2 s,空间限制: 512 MB.