题目详情
你拥有3种魔法,可以用第一种魔法把 a 克的沙子变成 b 克金属,可以用第二种魔法把 c 克金属变成 d 克金子,可以用第三种魔法把 e 克金子变成 f 克沙子。
问你能否用初始有限量的沙子、金属、金子得到无限多的金子?
输入格式:
多组数据,每组只有一行包含输入6个整数 a,b,c,d,e,f
(0<=a,b,c,d,e,f<=1000)
输出格式:
每组输出一行,YES和NO表示能否得到无限多的金子。
答题说明
输入样例
100 200 250 150 200 250
100 50 50 200 200 100
1 1 0 1 1 1
100 1 100 1 0 1
输出样例:
YES
NO
YES
YES
思路: 我们可以把a到b,c到d, e到f看成3个转换,通过ace个沙子刚好一个不剩的得到bdf个金子,所以只需要
判断bdf是否大于ace。我刚开始就是这么想的。结果无限错。最后在网上看了一下别人的解法,恍然大悟。原来
我考虑的是3个转换都参与了的情况(相信很多其它同学也是的吧,呵呵),有可能e到f这个转换或者
其它的不需要参与,也就是说,有可能只需要a到b,c到d这两个转换或者只需要c到d这个转换就能得到无限
多个金子。
代码如下: