题意: 判断天平是否平衡,0表示有子节点,
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int ok;
int dfs()
{
int w1,d1,w2,d2;
scanf("%d%d%d%d",&w1,&d1,&w2,&d2);
if ( w1 && d1 && w2 && d2 )
{
if ( (w1*d1) != (w2*d2) )
{
ok = 0 ;
return 0 ;
}
else return w1+w2;
}
else
{
if ( !w1 )
w1 = dfs();
if ( !w2 )
w2 = dfs();
if ( (w1*d1) != (w2*d2) )
{
ok = 0 ;
return 0;
}
else return w1+w2;
}
}
int main()
{
int i,N,sum;
scanf("%d",&N);
for ( i = 1 ; i <= N ; i++)
{
ok = 1;
dfs();
if ( ok )
printf("YES\n");
else printf("NO\n");
if ( i != N )
printf("\n");
}
return 0;
}