uva839
来源:互联网 发布:达芬奇调色 mac 编辑:程序博客网 时间:2024/06/06 14:08
Not so Mobile
Before being an ubiquous communications gadget, a mobile was just a structure made of strings and wires suspending colourfull things. This kind of mobile is usually found hanging over cradles of small babies.
The figure illustrates a simple mobile. It is just a wire, suspended by a string, with an object on each side. It can also be seen as a kind of lever with the fulcrum on the point where the string ties the wire. From the lever principle we know that to balance a simple mobile the product of the weight of the objects by their distance to the fulcrum must be equal. That isWl×Dl =Wr×Dr whereDl is the left distance,Dr is the right distance,Wl is the left weight andWr is the right weight.
In a more complex mobile the object may be replaced by a sub-mobile, as shown in the next figure. In this case it is not so straightforward to check if the mobile is balanced so we need you to write a program that, given a description of a mobile as input, checks whether the mobile is in equilibrium or not.
Input
The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs.The input is composed of several lines, each containing 4 integers separated by a single space. The 4 integers represent the distances of each object to the fulcrum and their weights, in the format:Wl Dl Wr Dr
If Wl or Wr is zero then there is a sub-mobile hanging from that end and the following lines define the the sub-mobile. In this case we compute the weight of the sub-mobile as the sum of weights of all its objects, disregarding the weight of the wires and strings. If bothWl andWr are zero then the following lines define two sub-mobiles: first the left then the right one.
Output
For each test case, the output must follow the description below. The outputs of two consecutive cases will be separated by a blank line.Write `YES' if the mobile is in equilibrium, write `NO' otherwise.
Sample Input
10 2 0 40 3 0 11 1 1 12 4 4 21 6 3 2
Sample Output
YES
Jose Paulo Leal, ACM-UP'2001
#include<stdio.h> #include<string.h> int ok;int run_tree(int W1,int D1,int W2,int D2){int w1,w2,d1,d2;if(W1==0){scanf("%d%d%d%d",&w1,&d1,&w2,&d2);W1=run_tree(w1,d1,w2,d2);}if(W2==0){scanf("%d%d%d%d",&w1,&d1,&w2,&d2);W2=run_tree(w1,d1,w2,d2);}if(ok&&W1*D1!=W2*D2)ok=0;return W1+W2;}main(){int n,w1,w2,d1,d2;freopen("D:\\bbbb.txt","r",stdin);scanf("%d",&n);while(n--){scanf("%d%d%d%d",&w1,&d1,&w2,&d2);ok=1;run_tree(w1,d1,w2,d2);printf(ok?"YES\n":"NO\n");if(n!=0) printf("\n");}return 0;}
- uva839
- uva839
- UVA839
- uva839
- uva839
- UVa839
- UVA839
- UVa839
- UVA839
- UVA839递归
- Uva839-天平
- UVA839 - Not so Mobile
- UVA839 - Not so Mobile
- UVa839 Not so Mobile
- uva839 not so mobile
- UVA839 - Not so Mobile
- UVA839——天平
- uva839解题报告
- Spring Security起步
- hdu 1711 number sequence
- hdoj 1406 衰( ⊙ o ⊙ )!
- Element type "Resource" must be followed by either attribute specifications, ">" or "/>".
- Javascript中三个等号与两个等号的区别
- uva839
- python 搭建的服务器上面 运行项目出错的记录
- MySQL 远程登录与其常用命令的介绍
- hdu 1853 Cyclic Tour(费用流OR二分图最佳匹配,5级)
- android 注册、登录实现程序
- hdu 2544 最短路(最短路第一弹)
- WebService
- 测试工程师如何提升自己
- 浅谈ASP脚本的解释