题目描述
打印机收到了 个打印任务,按提交顺序编号 到 ,依次进入打印队列。随后又收到 条取消指令,每条一个编号 ,表示取消任务 。
队列中间的任务没办法当场抽掉——已经排在前面(且未被取消)的任务照常打印,轮到被取消的任务时直接跳过。这是队列问题的经典「懒删除」手法:取消时只做标记,出队那一刻才检查。
输出最终实际打印的任务编号序列。
输入格式
第一行两个整数 、(,),分别表示任务数与取消条数。
第二行 个互不相同的整数 (),表示被取消的任务编号;若 ,这一行不存在。
输出格式
一行若干个整数:最终打印的任务编号按顺序,用空格分隔;若全部被取消,输出空行。
样例
输入:
5 1
3
输出:
1 2 4 5
任务 3 被取消,轮到它时直接跳过,其余照常打印。
数据范围
。提示:用一个标记数组记住「谁被取消了」,出队时看一眼标记再决定去留——千万别在取消指令到来时把队头到 的任务全弹出,那会误杀一堆无辜任务。