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

  Gym100989.cpp

 

posted @ 2019-10-17 15:58  HHHyacinth  阅读(196)  评论(0编辑  收藏  举报