问题1160--分油

1160: 分油

时间限制: 1 Sec  内存限制: 64 MB
提交: 3  解决: 0
[提交] [状态] [讨论版] [命题人:]

题目描述

有三个大小不一样的且没有刻度的油瓶,其容量分别为x升、y升、z升;三个油瓶的初始油量为:x1升、y1升、z1升;可以随意用某一瓶的油去灌满一瓶油,也可以把某一瓶的油全部倒入其他可以装下的一瓶油中,要求最后能得到一瓶装有t升的油。请编程输出一种最快的分油方案。若无法分出 t 升油, 则输出“NO ANSWER!”。

输入

第一行三个正整数x、y、z,表示三个油瓶的最大容量,且有x>y>z。
第二行三个正整数,表示三个油瓶的初始油量(油瓶顺序为x、y、z,且有x>y>z

输出

第一行一个正整数,表示最快分油方案所经历的最少分油步骤数。
接下来若干行,每行三个正整数,相邻两个整数之间用一个空格隔开,表示最快分油方案详细的分油步骤。其中第一行三个正整数油瓶顺序为x、y、z,且有x>y>z为三个油瓶的初始油量,其余各行三个正整数表示本最快分油方案每一个分油步骤各油瓶中当前的油量油瓶顺序为x、y、z,且有x>y>z)。
若无法分出 t 升油, 则用一行输出“NO ANSWER!”。

样例输入 Copy

10 7 3
10 0 0
5

样例输出 Copy

8
10 0 0
3 7 0
3 4 3
6 4 0
6 1 3
9 1 0
9 0 1
2 7 1
2 5 3

来源/分类