开 long long\text{long long}long long,如果仅仅使用 int 的话随便一加一减就溢出了。
开的是大根堆,不是小根堆,虽然这两个都能过样例,但是有 202020 分和 100100100 分的区别。
如果 RE 了,你十有八九是在优先队列为空的时候取出堆顶了,或者数组开小了(注意 n≤250000n \le 250000n≤250000)。
关于思路——每次撤销之前贪心的时候最多只能撤销一个,因为本题的目的就是让客户数最多,肯定不能乱弹一气啊。
撤销的时候是加上 bxb_xbx,而不是减去 bxb_xbx。
对于每个 iii,不管给不给这个顾客物品,aia_iai 都要加上。
堆是按照 bbb 从大到小排序的,一定要重载或者放进去 pair 来搞,千万不要只把位置弄进去也不重载啥的,否则就没有正确性了。