你拥有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
需特判为0的情况。
代码:
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> int main() { int a,b,c,d,e,f; while(~scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f)) { if(d==0) printf("NO\n"); else if(c==0) printf("YES\n"); else if(b==0) printf("NO\n"); else if(a==0) printf("YES\n"); else if(f==0) printf("NO\n"); else if(e==0) printf("YES\n"); else if(b*d*f>a*c*e) printf("YES\n"); else printf("NO\n"); } }
原文地址:http://blog.csdn.net/caduca/article/details/41889677