#96. Recamán

Recamán

题目描述

小杨最近发现了有趣的 Recamán 数列,这个数列是这样生成的:

  • 数列的第一项 a1a_1 是 11;
  • 如果 ai−1−ia_{i-1} - i 是正整数并且没有在数列中出现过,那么数列的第 ii 项 aia_i 为 ai−1−ia_{i-1} - i,否则为 ai−1+ia_{i-1} + i。

小杨想知道 Recamán 数列的前 nn 项从小到大排序后的结果。手动计算非常困难,小杨希望你能帮他解决这个问题。

输入格式

第一行,一个正整数 nn。

输出格式

一行,nn 个空格分隔的整数,表示 Recamán 数列的前 nn 项从小到大排序后的结果。

样例

输入样例 1:

5

输出样例 1:

1 2 3 6 7

输入样例 2:

8

输出样例 2:

1 2 3 6 7 12 13 20

样例解释

对于样例 1:a1=1a_1=1,a2=1−2=−1a_2=1-2=-1 不是正整数,因此 a2=3a_2=3;a3=3−3=0a_3=3-3=0 不是正整数,因此 a3=6a_3=6;a4=6−4=2a_4=6-4=2 是正整数且没有出现过,因此 a4=2a_4=2;a5=2−5=−3a_5=2-5=-3 不是正整数,因此 a5=7a_5=7。前五项从小到大排序后的结果为 1 2 3 6 71\ 2\ 3\ 6\ 7。

数据范围

对于所有数据点,保证 1≤n≤1041 \le n \le 10^4。