#P14948. [uoi2017]生日聚会
[uoi2017]生日聚会
题目描述
斯塔斯的生日快到了,他决定举办一场盛大的聚会。他邀请了所有熟人。由于预计会有很多客人,聚会上还将安排一场大型表演。
所有客人都告诉了斯塔斯他们会在什么时候到达聚会,以及什么时候不得不离开。聚会持续 分钟。斯塔斯知道,恰好有 位客人能在聚会开始前到达。之后,在聚会的每一分钟,要么会有一位新客人到达,要么会有一位当前在场的客人离开。
经过努力,斯塔斯邀请到了他最喜欢的著名艺人演唱一首歌。舞台前有无限多把椅子,椅子编号为从 开始的连续自然数。
问题是,艺人日程很紧,无法确定何时到达并开始表演。因此,斯塔斯需要在每一分钟都知道:如果艺人此刻到达,他要怎样快速安排当前所有客人入座,才能使客人的总不满值最小。
入座规则如下:
- 斯塔斯先确定一个入座顺序;
- 客人按照这个顺序一个一个选择座位;
- 每位客人都有一个最喜欢的座位编号;
- 当某位客人选择座位时,他会优先选择自己最喜欢的编号;如果该座位已被占用,他会选择后面第一个空座位;
- 客人的不满值等于最终坐下的椅子编号减去他最喜欢的编号。
入座过程可以认为瞬间完成。表演只持续一瞬间,因此不需要考虑表演期间客人离开或到达。
斯塔斯想最小化当前所有客人的总不满值。请你对聚会的每一分钟计算这个最小值。
输入格式
第一行包含两个自然数 和 ,表示聚会持续的分钟数,以及聚会开始前已经到达的客人数。
第二行包含 个自然数,表示这些客人最喜欢的座位编号。
接下来 行描述每一分钟的到达或离开事件。每行包含两个数 和 。
- 若 ,表示有一位新客人到达,其最喜欢的座位编号为 ;
- 若 ,表示有一位最喜欢座位编号为 的客人离开。保证此时至少有一位这样的客人在场。
输入中的所有自然数均不超过 ,且 只会取 0 或 1。
输出格式
在第一行输出 个整数,第 个数表示第 分钟事件发生后,当前所有在场客人的最小总不满值。
样例输入
4 3
1 1 2
1 2
0 1
0 1
1 2
样例输出
4 1 1 3
样例解释
聚会开始前,有最喜欢座位编号为 的三位客人。
第一分钟,来了一位最喜欢座位编号为 的客人。现在共有四位客人。一个最优安排是:先让喜欢 和 的两位客人入座,他们都坐到自己喜欢的位置;然后让另一位喜欢 的客人入座,由于 和 已被占用,他坐到 号椅子,不满值为 ;最后让喜欢 的客人坐到 号椅子,不满值为 。总不满值为 。
第二分钟,一位喜欢 的客人离开,场上只剩下喜欢 的三位客人。
子任务
- 15% 测试:所有数均不超过 ;
- 35% 测试:没有客人离开,即所有 均为 。