UVa 839 Not so Mobile(树的递归输入)
判断一个树状天平是否平衡,每个测试样例每行4个数 wl,dl,wr,dr,当wl*dl=wr*dr时,视为这个天平平衡,当wl或wr等于0是,下一行将是一个子天平,如果子天平平衡,wl为子天平的wl+wr ,否则整个天平不平衡
#include<iostream>
using namespace std;
bool solve(int &w)
{
int wl,dl,wr,dr;
cin>>wl>>dl>>wr>>dr;
bool b1 = true,b2=true;
if(wl == ) b1 = solve(wl);///进入左子天平
if(wr == ) b2 = solve(wr);///进入右子天平
w = wl+wr;
return b1 && b2 &&(wl*dl == wr*dr);
} int main()
{
int n;
cin>>n;
while(n--)
{
int weight;
bool s = solve(weight);
if(s) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
if(n) cout<<endl;
}
return ;
}