uva839

题意: 判断天平是否平衡,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;
}


你可能感兴趣的:(uva839)