首页 > 试题广场 >

water

[编程题]water
  • 热度指数:481 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解

给定四个空杯子,容量分别为S1 S2 S3 S4,允许进行以下操作:

1.  将某个杯子接满水

2.  将某个杯子里的水全部倒掉

3.  将杯子A中的水倒进杯子B,直到A倒空或者B被倒满

问最少要多少步操作才能使得这四个杯子装的水分别为T1 T2 T3 T4



输入描述:
第一行四个非负整数S1 S2 S3 S4
第二行四个非负整数T1 T2 T3 T4


输出描述:
最少的步数,若无法完成则输出-1
示例1

输入

0 2 3 4
0 1 2 4

输出

6

说明

过程如下:
(0,0,0,0)->(0,2,0,0)->(0,2,3,0)->(0,2,0,3)->(0,0,2,3)->(0,2,2,3)->(0,1,2,4)

备注:
0≤Ti≤Si<64

这道题你会答吗?花几分钟告诉大家答案吧!