Gyn 100989 "1D Cafeteria (B)"(set+lower_bound)
•题意
某自助餐厅有 n 张桌子,桌子编号为 1~n,其中第 i 张桌子可容纳 ai 个人;
有两种操作:
(1)in x : 有 x 个人来这家餐厅吃饭,需要找一个可容纳 x 人的桌子,并满足找到的桌子可容纳的人尽可能靠近 x 并且还要满足编号尽可能小;
(2)out x : 第 x 号桌子上的客人吃完离开;
输入数据保证操作(2)合法;
共操作 q 次,输出操作(1)对应的桌子编号;
•题解
将 桌子以及可容纳的人数 封装在一起放入 set 中,并按照先容量后编号的规则排序;
每次查找的时候,调用 set 中的 lower_bound() 即可;
•Code