TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P1686
  • 题目
  • P1686数字链
    限制 : 时间限制 : 10000 MS   空间限制 : 100000 KB
    问题描述

     (chain.cpp/.in/.out 时限1s 内存128m)
      数字链有以下的特性:
       它是一个有m+1个数的序列A0,A1,A2……Am。
       A0=1
       Am=n
       A0<A1<……<Am
       对于k,1<=k<=m,有Ak=Ai+Aj,i和j小于k,但i和j可以相同(即Ai,Aj可以是同一个数)
       现在给定一个n,输出一个最短的数字链。
        例如当n=5是由以下三种构造数字链的方法:
        <1,2,3,4,5>
        <1,2,3,5><1,2,4,5>
    后面的两种是最短的,输出他们中字典序小者。

    输入格式

    一行,一个整数n

    输出格式

    第一行,一个整数,表示最短数字链的长度
    第二行,求出的合法数字序列,空格间隔

    样例输入

    5

    样例输出

    4
    1 2 3 5

    提示

    对于100%的数据,1<=n<=100