1444.折纸

时间限制:2s 内存限制:256MB

Su_Zipei 和 YellowBlue 正在进行折纸游戏,他们决定在数轴上进行折纸。

首先,他们将一条 $n$ 个单位长度的纸带对应的放到数轴 $1 \sim n$ 上,并将数轴上的数标到纸带的对应位置,每次选择纸带一个点为对称中心进行对折,这个点将纸带分为两部分,如果左边比右边长,那么将右边的部分折到左边,否则将左边的部分折到右边,进行了 $m$ 次对折后,他们想知道,纸带上标的数字现在在哪个位置。

请注意大量I/O带来的时间消耗

输入格式(从终端/标准输入读取)

第一行两个整数 $n$ 和 $m$,分别表示纸带的长度和对折的次数。

接下来 $m$ 行表示每次对折的信息,其中第 $i$ 行有一个整数 $x_i$。

表示选择数轴上 $x=x_i$ 的位置作为对称中心。

输出格式(输出至终端/标准输出)

一行 $n$ 个整数,第 $i$ 个整数表示最开始标为 $i$ 的数字翻折到了什么位置。

输入样例

复制
3 1
2
 · \n
 \n

输出样例

复制
3 2 3
 · · \n

说明

对于 $100\%$ 的数据,$2 \le n \le 10^6$,$1 \leq m \leq 10^6$

保证每次选择的 $x_i$ 位置上一定有纸带覆盖

作者: Su_Zipei
来源: 北京交通大学第十八届大学生程序设计竞赛网络预选赛

提交题解

Please login first.

© 2025 FAQs