Uva 839 Not so Mobile

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   strong   

  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 is WDl = WDr where Dl is the left distance, Dr is the right distance, Wl is the left weight and Wr is the right weight.

 


In a more complex mobile the object may be replaced by asub-mobile, as shown in the next figure. In this case it is not sostraightforward to check if the mobile is balanced so we need youto 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 indicatingthe 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 betweentwo consecutive inputs.

 


The input is composed of several lines, each containing 4 integersseparated by a single space. The 4 integers represent thedistances of each object to the fulcrum and their weights, in theformat: WDWDr

If Wl or Wr is zero then there is a sub-mobile hanging fromthat end and the following lines define the the sub-mobile. Inthis case we compute the weight of the sub-mobile as the sum ofweights of all its objects, disregarding the weight of the wiresand strings. If both Wl and Wr are zero then the followinglines 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
本題極為重要!!!
 1 #include<iostream>   2 #include<string.h>   3 #include<stdio.h>   4 #include<ctype.h>   5 #include<algorithm>   6 #include<stack>   7 #include<queue>   8 #include<set>   9 #include<math.h>  10 #include<vector>  11 #include<map>  12 #include<deque>  13 #include<list>  14 using namespace std;  15 bool solve(int& W)16 {17     int W1,D1,W2,D2;18     bool b1=true,b2=true;19     cin>>W1>>D1>>W2>>D2;20     if(!W1)b1=solve(W1);21     if(!W2)b2=solve(W2);22     W=W1+W2;23     return b1 && b2 && (W1*D1==W2*D2); 24 } 25 int main()26 {27     int T,W;28     cin>>T;29     while(T--)30     {31         if(solve(W))32         cout<<"YES\n";33         else34         cout<<"NO\n";35         if(T)36         printf("\N");37     }38     return 0;39 } 
View Code

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.