Problem F: 小练习闯关

Problem F: 小练习闯关

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

在小学信息课上,老师准备了一个“小练习闯关”活动,一共有 5 道小任务,分别记作:


  • 任务A、任务 B、任务 C、任务 D、任务 E
完成每个任务可以得到对应的积分:



  • A 得  分,B 得  分,C 得  分,D 得  分,E 得  分。
现在,班里同学们的完成情况非常“整齐”:


对字符串 ABCDE 的 所有非空子序列(不要求连续),都恰好存在一种“完成方案”。

也就是说,把 ABCDE 看成 5 个任务的集合,那么:


  • 一种 非空任务组合 都会出现一次
  • 例如:   
    • 只做了 A 的方案记为 {A}
    • 做了 B、C、E 的方案记为 {B,C,E}

    你需要做的是:

  1. 枚举出所有 31 种非空完成方案(因为 )。
  2. 计算每种方案的总积分(把包含的任务分数相加)。
  3. 这 31 个总积分 从大到小排序并输出。


Input

一行输入 5 个整数:

a b c d e

Output

输出 31 行

将所有非空完成方案的总积分 从大到小排序 后输出:

  • 第 1 行输出最高的总分
  • 第 31 行输出最低的总分
  • 若出现相同的总分,则这些相同总分都要输出(出现几次就输出几行),它们之间的相对顺序不作额外要求。

Sample Input Copy

400 500 600 700 800

Sample Output Copy

3000
2600
2500
2400
2300
2200
2100
2000
1900
1900
1800
1800
1700
1700
1600
1500
1500
1400
1300
1300
1200
1200
1100
1100
1000
900
800
700
600
500
400

HINT

数据范围
  • 输入均为整数