#228. 小风的冒险者任务调度
小风的冒险者任务调度
题目描述
在一个充满竞争的冒险者公会里,小风是一位专注任务调度的管理者。他的任务列表每天都会被冒险者们频繁刷新。公会里有 位冒险者,他们的编号从 到 。每当某位冒险者完成任务并提交成果时,小风会将他们放在任务列表的首位,以彰显他们的活跃度。
任务列表可以用一个大小为 的排列 来表示:
- 是最近完成任务的冒险者,
- 是第二最近完成任务的冒险者,依此类推。
起初,任务列表是冒险者的初始顺序 ,代表每位冒险者初始的排序位置。
接着,小风一共处理了 次任务提交,第 次提交来自编号为 的冒险者。每当某位冒险者完成任务时,任务列表会发生如下变化:
- 这位冒险者 会被移动到列表的第一位;
- 位于第一位和冒险者 当前位置之间的所有其他冒险者依次向后移动一位。
注意:
- 如果这位冒险者 本来就在第一位,则任务列表保持不变。
例如:假设当前任务列表是 :
- 如果冒险者 提交任务,列表变为 ;
- 如果冒险者 提交任务,列表不变,仍是 ;
- 如果冒险者 提交任务,列表变为 。
现在,小风希望统计,每位冒险者在初始状态及任务提交后的所有变化中,曾经占据过的最靠前的位置和最靠后的位置。
输入格式
第一行包含两个整数 和 (), 表示冒险者数量和任务提交的次数。
第二行包含 个整数 (),表示每次提交任务的冒险者编号。
输出格式
输出 行,每行包含两个整数,分别表示某位冒险者在任务列表中的最靠前位置和最靠后位置。
样例
5 4
3 5 1 4
1 3
2 5
1 4
1 5
1 5
4 3
1 2 4
1 3
1 2
3 4
1 4
解释
对于样例1:
初始任务列表:
处理任务提交的过程如下:
- 冒险者 提交任务后,列表变为:
- 冒险者 提交任务后,列表变为:
- 冒险者 提交任务后,列表变为:
- 冒险者 提交任务后,列表变为:
因此每位冒险者的最靠前位置和最靠后位置为:
- 冒险者 : 最靠前 , 最靠后
- 冒险者 : 最靠前 , 最靠后
- 冒险者 : 最靠前 , 最靠后
- 冒险者 : 最靠前 , 最靠后
- 冒险者 : 最靠前 , 最靠后
统计
相关
在以下作业中: