3211. 小火龙卖酒
时间限制:1000 MS 内存限制:256 MB
题目描述
## 题目描述 还记得第一期第三场的倒酒那个题吗: 小火龙是一个商人,主营业务是卖酒,做生意初期,一切以节省开支为第一要务,所以她除了装酒的大桶外只买了两个杯子,这两个杯子除了标注了装满时是装了多少,并没有其它刻度。 每当有客人光顾的时候,客人会告诉小火龙他想要买多少酒。虽然没有正常的容器,但是聪明的小火龙会利用这两个杯子的差异,经过若干次倒空与注满的操作,准确的凑出客人所需要的量。 经过多日经营,小火龙也发现了一个问题,有些客人的需求,小火龙是无论如何也凑不出来的,这个时候她就会提议让客人多买一点或者少买一点到恰好能凑出的量。 每次到最后才发现凑不出来所需要的量真的是让小火龙有点头疼,所以小火龙求助于你让你能不能最开始的时候就判断出客人的量能不能被准确凑出。 <------------------------------------以上是原来的题目------------------------------------> 现在又有了新的问题,小火龙发现客人的耐性普遍不佳,如果倒来倒去倒很久,客人会变得不耐烦,所以小火龙想知道如果一个量可以被凑出来,最少需要几个步骤? 假设客人来的时候两个杯子都是空的,且以下操作被视为一个步骤: - 将一个杯子里的酒全部倒回大桶里 - 从大桶里取酒将一个杯子装满 - 将一个杯子里的酒倒空到另一个杯子里(如果倒过去不会溢出来的话) - 用一个杯子里的酒注满另一个杯子(如果酒量够,注的满的话) - 将一个杯子里的酒倒给客人 ## 输入格式 输入在一行中给出 $3$ 个正整数 $a,b,c$,前两个代表小火龙两个杯子的容量,第三个代表客人要买的容量 $1\lea,b,c\le100$ ## 输出格式 每组输入输出一行,若客人要求的量凑得出来输出最少的步骤数 凑不出来输出 $No$ ## 输入 ```in1 1 2 1 ``` ## 输出 ```out1 2 ``` ```in2 1 2 9 ``` ```out2 10 ``` ```in3 3 5 4 ``` ```out3 7 ``` ## 提示 第一组:小火龙可以用容量为 $1$ 的杯子将酒量给客人。 第二组:小火龙可以先用容量为 $2$ 的杯子量酒给客人 $4$ 次,然后再用容量为 $1$ 的杯子量给客人 $1$ 次。 第三组:小火龙可以先把容量为 $5 $的杯子注满,然后用这个容量为 $5$ 的杯子将容量为 $3$ 的杯子注满,那么在容量为 $5$ 公合的杯子里就会剩下 $2$,将这个$2 $量给客人以后,把容量为 $3 $的杯子倒空,再重复一次,就可以量给客人总共 $4 $的酒了。