问题 4625 --2.造房子的学问

4625: 2.造房子的学问

题目描述

  小木屋看来已被荒置很多年了,Z4决定首先把它修葺一下,由最健壮的hongyan总负责。其余的人各自到到上去砍伐木材。
    一些细微工作结束后,hongyan决定在木屋中加一条顶梁柱,但是其他人提供的木材长度参差不齐,幸运的是几何功底扎实的他,利用已有的工具造出了一把尺子。
    hongyan首先选取了了一条最好的木材,然后他可以对这条木材作如下几种操作:
1. 接上分别由jakrinchose,立方,worm提供的木材(由于岛上资源丰富,这些木材是无限的),木材的长度会不损耗的增加。
    2.用尺子在木材上截去该尺子长度的一段,当然截开后的两段木材依然可以利用。
    3.把木材对半截断,木材长度变为原来的一半。
    另外jakrinchose等提供用于拼接的木材由于质量一般(谁说的?!),不能直接使用为顶梁柱。
    现在hongyan 想知道,通过这几种操作,是否能造出需要的长度的顶梁柱(当然他手中的“最好的木材”不能完全被截去,也就是说在操作的过程中不能把“最好的木材”完全扔掉以至长度为0!)假如可以,最少需要多少不工序?

输入

输入文件wood.in有5行,第一行两个数n,m(1<=n,m<=32767)分别表示该木材原来的长度,和需要的长度.第2至4行各一个数分别是jakrinchose,立方,worm提供用于拼接的木材长度L1,L2,L3(L1,L2,L3<=32767),最后一行也是一个数,表示尺子的长度L(L<n)。(Z4是喜欢整数的人,所以所有的数据是整数,同时,对半截断的木材多出来的非整数部分,将作为多余的成分删去,也就是该操作后,木材的长度可以用div 2来运算;同时,任何时候,木材长度都不应大于32767)。

输出

 输出文件wood.out仅一行,假如不能造出需要的长度,则输出“No solution.”否则输出最少需要的工序数。

样例输入输出

输入#1 复制
100 81
10
24
40
1
输出#1 复制
3


提示

(样例注解:3的结果是截出1,再加上两次40)

序号 标题 作者 发表时间 费用 订购数 操作