3701: 最佳位置(第六轮03)

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:1

题目描述

牛牛最近在研究一个问题,他将其称之为“最佳位置”问题。

有n个座位从左到右排成一行,相邻之间两两距离为1  ,编号从1到n。

会有m个人按顺序进来,选择一个座位坐下,新来的人会计算每个位置, 离最近 的已被坐的座位的距离。新来的人会选择距离最大的座位坐下, 如果有多个,他 会选择编号最小的。如果场上都是空位置,来的人会选择坐在位置 1 。

如xoooxoxx, 离被坐的座位的距离就分别为01210100  , 如果这时候新来一个人, 会选择坐在位置 3 ,变成xoxoxoxx 。

当然,这些人也会离开,而空出当前的位置。

牛牛现在拿到了一张进入和离开的顺序表,他想知道每个人落座时,会选择什么 位置。

输入

第一行输入两个整数n, m,表示座位数目和人的数目。

随后2m行,每行一个整数ai ,如果是第一次出现,表示编号为ai 的人进来;如果 是第二次出现,表示编号为ai 的人离开, 并空出了座位。保证每个人只会进出各

一次。

数据保证每个人只会进来1次,离开1次。


输出

输出m行,每行1个整数,第i行表示编号为i的人选择的座位。

样例输入 复制

9 4
1
2
3
1
4
2
3
4

样例输出 复制

1
9
5
1

提示

【样例 1 说明】

在座位都没有人时,视所有座位离有人坐过的座位的距离为无穷大。所以一开始 距离一样,会选择坐编号最小的 1 号座位。

在前两人坐了  1,9 之后,距离分别为 012343210 , 故会选择 5  号座位。

4 进来时,距离情况为 432101210 ,故选择  1  号座位。

【数据范围

对于 30%的数据有n ≤ 100,  m ≤ 100。

对于 60%的数据有1 ≤ n ≤ 10^6 。

其中 20%的数据第一位来的人最后才走,

另有 20%的数据前两位来的人最后才走。˙

对于 100%的数据有1 ≤ m  ≤ n ≤ 10^9, 1 ≤ m  ≤ 3 ⋅ 10^5 。

注意:题目不保证进入的人按编号顺序进入。 CD 的大数据下载链接:

链接: https://pan.baidu.com/s/1zupTECKeGEpNM-9tQ4TzlQ 提取码: NOIP

或者从这里提取:

https://paste.ubuntu.com/p/f6DcTc7CFh/

来源/分类