#853. 体育课

体育课

问题描述

这是一个神奇的一天,“体弱多病”的体育老师终于不请假了,一班的同学们迎来了难得的体育课。

一班共有 nn 个学生,编号为 1,2,,n1,2,\dots,n。同学们站成一排(即一个 1n1\sim n 的排列)。

体育老师会进行如下操作:

  • 将当前序列中相邻两项相加,得到一个新序列(长度减少 11
  • 重复上述操作,直到序列中只剩下一个数

最终得到的这个数记为 sumsum

例如,当 n=5n=5 时,某个排列经过上述过程最终得到 5353

现在,体育老师决定反过来:

已知 nn 和最终结果 sumsum,要求你求出原始的排列

如果存在多种可能,输出按字典序最小的那一个排列。

这里的字典序定义为:将序列视为一个数列,从左到右逐位比较,较小者优先。

输入格式

输入一行两个整数 n,sumn, sum

输出格式

输出一行 nn 个整数,表示原始学生的排列。

样例输入

5 53

样例输出

2 1 4 5 3

说明

通过不断对相邻元素求和,最终只剩一个数。

在所有满足最终结果为 5353 的排列中:

  • 2 1 4 5 32\ 1\ 4\ 5\ 3 是字典序最小的方案

评测数据规模

  • 对于 40%40\% 的数据:n7n \le 7
  • 对于 80%80\% 的数据:n10n \le 10
  • 对于 100%100\% 的数据:n12, sum12345n \le 12,\ sum \le 12345
  • 保证一定存在解